Hàm AVG trong SQL



Hàm AVG trong SQL được sử dụng để tìm giá trị trung bình của một trường của các bản ghi đa dạng.

Để hiểu hàm AVG, bạn theo dõi bảng MUONSACH có các bản ghi sau:

SQL> SELECT * FROM MUONSACH;
+----+---------+-----+-----------+--------+
| ID |  TEN    | TUOI|  KHOAHOC  | SOTIEN |
+----+---------+-----+-----------+---------+
|  1 | Hoang   |  21 | CNTT      | 400000       |
|  2 | Viet    |  19 | DTVT      | 320000     |
|  3 | Thanh   |  18 | KTDN      |  400000      |
|  4 | Nhan    |  19 | CK        |   450000   |
|  5 | Huong   |  20 | TCNH      |   500000     |
|  5 | Huong   |  20 | TCNH      |  210000    |
+----+---------+-----+-----------+---------+
6 rows in set (0.00 sec)

Bây giờ giả sử, dựa trên bảng trên, bạn muốn tính giá trị trung bình của tất cả SOTIEN, thì bạn có thể thực hiện điều này bởi sử dụng lệnh:

SQL> SELECT AVG(SOTIEN)
    -> FROM MUONSACH;
+-------------------------+
| AVG(SOTIEN) |
+-------------------------+
|                380000.0000 |
+-------------------------+
1 row in set (0.03 sec)
Quảng cáo

Bạn có thể tính giá trị trung bình của các tập hợp bản ghi đa dạng bởi sử dụng mệnh đề GROUP BY. Ví dụ sau tính giá trị trung bình của tất cả bản ghi liên quan tới một người và bạn sẽ thực hiện như sau:

SQL> SELECT TEN, AVG(SOTIEN)
    -> FROM MUONSACH GROUP BY TEN;
+------+-------------------------+
| TEN | AVG(SOTIEN) |
+------+-------------------------+
| Hoang |                400000.0000 |
| Huong |                355000.0000 |
| Nhan |              450000.0000 |
| Thanh  |            400000.0000 |
| Viet |           320000.0000 |
+------+-------------------------+
5 rows in set (0.20 sec)

ham_trong_sql.jsp


Tài liệu giáo viên