Cú pháp như sau để sử dụng WITH ROLLUP -
select yourColumnName1,sum(yourColumnName2) from yourTableName group by yourColumnName1 with rollup;
Đầu tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable1622 -> ( -> EmployeeCountryName varchar(20), -> EmployeeSalary int -> ); Query OK, 0 rows affected (0.44 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn -
mysql> insert into DemoTable1622 values('US',4500); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable1622 values('UK',1500); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable1622 values('AUS',1700); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable1622 values('UK',1900); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable1622 values('US',3900); Query OK, 1 row affected (0.42 sec)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -
mysql> select * from DemoTable1622;
Điều này sẽ tạo ra kết quả sau -
+---------------------+----------------+ | EmployeeCountryName | EmployeeSalary | +---------------------+----------------+ | US | 4500 | | UK | 1500 | | AUS | 1700 | | UK | 1900 | | US | 3900 | +---------------------+----------------+ 5 rows in set (0.00 sec)
Đây là truy vấn để sử dụng chính xác VỚI ROLLUP trong MySQL -
mysql> select EmployeeCountryName,sum(EmployeeSalary) from DemoTable1622 -> group by EmployeeCountryName with rollup;
Điều này sẽ tạo ra kết quả sau -
+---------------------+---------------------+ | EmployeeCountryName | sum(EmployeeSalary) | +---------------------+---------------------+ | AUS | 1700 | | UK | 3400 | | US | 8400 | | NULL | 13500 | +---------------------+---------------------+ 4 rows in set (0.02 sec)