Mục lục
Trong hệ quản trị cơ sở dữ liệu, các hàm tổng hợp là một hàm trong đó các giá trị của nhiều hàng được gom nhóm lại với nhau để làm đầu vào cho các tiêu chí nhất định để tạo thành một giá trị duy nhất có ý nghĩa quan trọng hơn.
Chúng ta có các hàm tổng hợp thường xuyên sử dụng sau:
- Count
- Sum
- Avg
- Min
- Max
Hàm Count trong SQL
Hàm COUNT trong SQL là hàm đơn giản nhất và rất hữu ích trong việc đếm số lượng bản ghi, được mong đợi sẽ được trả về bởi một câu lệnh SELECT.
Gỉa sử chúng ta có bảng employee_tbl sau:
+------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 3 | Jack | 2007-04-06 | 100 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | | 5 | Zara | 2007-02-06 | 350 | +------+------+------------+--------------------+
Bây giờ, giả sử dựa trên bảng trên, chúng ta muốn đếm tổng số hàng trong bảng này, thì bạn có thể làm như sau
SQL>SELECT COUNT(*) FROM employee_tbl ; +----------+ | COUNT(*) | +----------+ | 7 | +----------+ 1 row in set (0.01 sec)
Tương tự, nếu bạn muốn đếm số lượng bản ghi có name là Zara, thì có thể thực hiện như sau:
SQL>SELECT COUNT(*) FROM employee_tbl -> WHERE name="Zara"; +----------+ | COUNT(*) | +----------+ | 2 | +----------+
Hàm Sum trong SQL
Hàm SUM trong SQL được sử dụng để tính tổng của một trường trong các bản ghi khác nhau.
Cũng với bảng dữ liệu trên
+------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 3 | Jack | 2007-04-06 | 100 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | | 5 | Zara | 2007-02-06 | 350 | +------+------+------------+--------------------+
SQL> SELECT SUM(daily_typing_pages) -> FROM employee_tbl; +-------------------------+ | SUM(daily_typing_pages) | +-------------------------+ | 1610 | +-------------------------+
Bạn có thể lấy tổng các bản ghi khác nhau dựa trên mệnh đề GROUP BY. Ví dụ sau sẽ tổng hợp tất cả các bản ghi liên quan đến một người duy nhất và bạn sẽ có tổng số trang được đánh máy bởi mỗi người.
SQL> SELECT name, SUM(daily_typing_pages) -> FROM employee_tbl GROUP BY name; +------+-------------------------+ | name | SUM(daily_typing_pages) | +------+-------------------------+ | Jack | 270 | | Jill | 220 | | John | 250 | | Ram | 220 | | Zara | 650 |
Hàm Avg trong SQL
Hàm AVG trong SQL được sử dụng để tính giá trị trung bình của một trường trong các bản ghi khác nhau.
Với bảng dữ liệu sau
SQL> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 3 | Jack | 2007-04-06 | 100 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | | 5 | Zara | 2007-02-06 | 350 | +------+------+------------+--------------------+
Chúng ta muốn tính trung bình của tất cả các trang dialy_typing_pages, thì bạn có thể làm như vậy bằng cách sử dụng lệnh sau:
SQL> SELECT AVG(daily_typing_pages) -> FROM employee_tbl; +-------------------------+ | AVG(daily_typing_pages) | +-------------------------+ | 230.0000 | +-------------------------+
Bạn có thể lấy trung bình của các bản ghi khác nhau được thiết lập bằng mệnh đề GROUP BY. Ví dụ sau sẽ lấy trung bình tất cả các bản ghi liên quan đến một người và bạn sẽ có các trang được đánh trung bình bởi mỗi người
SQL> SELECT name, AVG(daily_typing_pages) -> FROM employee_tbl GROUP BY name; +------+-------------------------+ | name | AVG(daily_typing_pages) | +------+-------------------------+ | Jack | 135.0000 | | Jill | 220.0000 | | John | 250.0000 | | Ram | 220.0000 | | Zara | 325.0000 |
Hàm Min trong SQL
Hàm MIN trong SQL được sử dụng để tìm ra bản ghi có giá trị nhỏ nhất trong một tập hợp bản ghi.
Ví dụ chúng ta có thể tìm ra số lượng daily_typing_pages nhỏ nhất của từng người
SQL> SELECT id, name, work_date, MIN(daily_typing_pages) -> FROM employee_tbl GROUP BY name; +------+------+-------------------------+ | id | name | MIN(daily_typing_pages) | +------+------+-------------------------+ | 3 | Jack | 100 | | 4 | Jill | 220 | | 1 | John | 250 | | 2 | Ram | 220 | | 5 | Zara | 300 | +------+------+-------------------------+
Hàm Max trong SQL
Hàm Max trong SQL được sử dụng để tìm ra bản ghi có giá trị lớn nhất trong một tập hợp bản ghi.
Ví dụ chúng ta có thể tìm ra số lượng daily_typing_pages lớn nhất của từng người
SQL> SELECT id, name, MAX(daily_typing_pages) -> FROM employee_tbl GROUP BY name; +------+------+-------------------------+ | id | name | MAX(daily_typing_pages) | +------+------+-------------------------+ | 3 | Jack | 170 | | 4 | Jill | 220 | | 1 | John | 250 | | 2 | Ram | 220 | | 5 | Zara | 350 | +------+------+-------------------------+
Nguồn tham khảo
https://www.tutorialspoint.com/sql/sql-avg-function.htm
https://www.tutorialspoint.com/sql/sql-count-function.htm
https://www.tutorialspoint.com/sql/sql-sum-function.htm
https://www.tutorialspoint.com/sql/sql-min-function.htm