mariadb SQL 查询显示带有聚合值的汇总行
mariadb SQL query showing summary lines with aggregated values
我需要在 MariaDB 中编写一个 SQL 查询来打印一个在汇总行之间包含聚合值的报告。
例如EMP table 中的数据是:
EmpName ROLE SALARY
A Manager 10000
B operator 8000
C operator 8500
D GM 20000
E Manager 9000
我需要这样的输出:
ROLE EmpName SALARY
Manager A 10000
E 9000
TOTAL 19000
----------------------------
GM D 20000
TOTAL 20000
----------------------------
operator B 8000
C 8500
TOTAL 16500
非常感谢。
以下查询可以产生类似于您想要的输出:
SELECT IF(type = 1, ROLE, 'TOTAL'), SALARY
FROM (
SELECT ROLE, SALARY, 1 AS type
FROM mytable
UNION ALL
SELECT ROLE, SUM(SALARY) AS TotalSalary, 2 AS type
FROM mytable
GROUP BY ROLE) AS t
ORDER BY ROLE, type
尝试使用WITH ROLLUP修饰符,例如-
SELECT
role, empname, SUM(salary)
FROM
table1
GROUP BY
role, empname WITH ROLLUP;
输出:
GM D 20000
GM (null) 20000
Manager A 10000
Manager E 9000
Manager (null) 19000
operator B 8000
operator C 8500
operator (null) 16500
(null) (null) 55500
分组列的所有 NULL 值都是总值。最后一行是所有薪水的总价值。
GROUP BY WITH ROLLUP 修改器文档。
我需要在 MariaDB 中编写一个 SQL 查询来打印一个在汇总行之间包含聚合值的报告。
例如EMP table 中的数据是:
EmpName ROLE SALARY
A Manager 10000
B operator 8000
C operator 8500
D GM 20000
E Manager 9000
我需要这样的输出:
ROLE EmpName SALARY
Manager A 10000
E 9000
TOTAL 19000
----------------------------
GM D 20000
TOTAL 20000
----------------------------
operator B 8000
C 8500
TOTAL 16500
非常感谢。
以下查询可以产生类似于您想要的输出:
SELECT IF(type = 1, ROLE, 'TOTAL'), SALARY
FROM (
SELECT ROLE, SALARY, 1 AS type
FROM mytable
UNION ALL
SELECT ROLE, SUM(SALARY) AS TotalSalary, 2 AS type
FROM mytable
GROUP BY ROLE) AS t
ORDER BY ROLE, type
尝试使用WITH ROLLUP修饰符,例如-
SELECT
role, empname, SUM(salary)
FROM
table1
GROUP BY
role, empname WITH ROLLUP;
输出:
GM D 20000
GM (null) 20000
Manager A 10000
Manager E 9000
Manager (null) 19000
operator B 8000
operator C 8500
operator (null) 16500
(null) (null) 55500
分组列的所有 NULL 值都是总值。最后一行是所有薪水的总价值。
GROUP BY WITH ROLLUP 修改器文档。