我们如何确定Rollup中组的开始? 并通过将其与一些有用的文本结合并将其显示为组的第一行来包括组值?
例如:
dept emp_name sal
---- -------- ---
10 sac 999
10 abc 888
20 pqr 777
20 lmn 123
30 stv 444
30 com 555
o/p after rollup should be
dept emp_name sal
---- -------- ---
Department 10 NULL NULL
10 sac 999
10 abc 888
20 1887
Department 20 NULL NULL
20 pqr 777
20 lmn 123
20 900
Department 30 NULL NULL
30 stv 444
30 com 555
30 999
3786
答案 0 :(得分:0)
以下是您可以用来满足要求的查询。它使用GROUP BY ROLLUP
SELECT DISTINCT 1 AS rn,dept, CONCAT('Department ', dept) AS DeptDesc, NULL AS Sum
FROM your_table
UNION ALL
SELECT 2, dept, CAST(dept AS VARCHAR(10)), SUM(SAL)
FROM your_table
GROUP BY ROLLUP(dept, emp_name)
ORDER BY dept, rn, sum
以下是SQL Fiddle
的代码