Cú pháp cơ bản
SELECT yourColumnName1, SUM(yourColumnName2)
FROM yourTableName
GROUP BY yourColumnName1 WITH ROLLUP;
Ví dụ minh họa
mysql> CREATE TABLE DemoTable1622 (
-> EmployeeCountryName VARCHAR(20),
-> EmployeeSalary INT
-> );
Query OK, 0 rows affected (0.44 sec)
mysql> INSERT INTO DemoTable1622 VALUES('US', 4500);
mysql> INSERT INTO DemoTable1622 VALUES('UK', 1500);
mysql> INSERT INTO DemoTable1622 VALUES('AUS', 1700);
mysql> INSERT INTO DemoTable1622 VALUES('UK', 1900);
mysql> INSERT INTO DemoTable1622 VALUES('US', 3900);
Dữ liệu gốc
mysql> SELECT * FROM DemoTable1622;
+---------------------+----------------+
| EmployeeCountryName | EmployeeSalary |
+---------------------+----------------+
| US | 4500 |
| UK | 1500 |
| AUS | 1700 |
| UK | 1900 |
| US | 3900 |
+---------------------+----------------+
Truy vấn WITH ROLLUP
mysql> SELECT EmployeeCountryName, SUM(EmployeeSalary)
-> FROM DemoTable1622
-> GROUP BY EmployeeCountryName WITH ROLLUP;
Kết quả có thêm hàng tổng (NULL)
+---------------------+---------------------+
| EmployeeCountryName | SUM(EmployeeSalary) |
+---------------------+---------------------+
| AUS | 1700 |
| UK | 3400 |
| US | 8400 |
| NULL | 13500 |
+---------------------+---------------------+
Ý nghĩa: Hàng NULL đại diện cho tổng toàn bộ (Grand Total). Có thể dùng COALESCE(EmployeeCountryName, 'Tổng') để hiển thị đẹp hơn.