IT评测·应用市场-qidao123.com技术社区

标题: 比力UNION ALL与WITH ROLLUP [打印本页]

作者: 宁睿    时间: 2025-4-19 13:47
标题: 比力UNION ALL与WITH ROLLUP
UNION ALL 是一个简朴的合并操作,适合将多个查询效果合并成一个效果集,而 WITH ROLLUP 是一个更复杂的聚合功能,通常用于天生分组小计和总计。
UNION ALL 和 WITH ROLLUP 是SQL中两个不同的功能,它们的用途和活动有显著区别:
UNION ALL


  1. SELECT column1, column2 FROM table1
  2. UNION ALL
  3. SELECT column1, column2 FROM table2;
复制代码

WITH ROLLUP


  1. SELECT department, employee, SUM(salary) AS total_salary
  2. FROM employees
  3. GROUP BY department, employee WITH ROLLUP;
复制代码

区别

特性
UNION ALL
WITH ROLLUP
用途
合并多个查询效果
天生分组小计和总计
输出
包罗全部行,包括重复行
包罗分组小计和总计行
性能
通常较快
大概稍慢
实用场景
合并多个数据源的效果
天生报表,包罗分组小计和总计
示例

假设有一个名为 sales 的表,包罗以下数据:
department
employee
amount
Sales
Alice
1000
Sales
Bob
1500
Marketing
Charlie
2000
Marketing
Dana
2500
利用 UNION ALL

  1. SELECT department, employee, amount FROM sales WHERE department = 'Sales'
  2. UNION ALL
  3. SELECT department, employee, amount FROM sales WHERE department = 'Marketing';
复制代码
输出
department
employee
amount
Sales
Alice
1000
Sales
Bob
1500
Marketing
Charlie
2000
Marketing
Dana
2500
利用 WITH ROLLUP

  1. SELECT department, employee, SUM(amount) AS total_amount
  2. FROM sales
  3. GROUP BY department, employee WITH ROLLUP;
复制代码
输出
department
employee
total_amount
Sales
Alice
1000
Sales
Bob
1500
Sales
NULL
2500
Marketing
Charlie
2000
Marketing
Dana
2500
Marketing
NULL
4500
NULL
NULL
7000
以上示例可以看出,UNION ALL 用于合并多个查询效果,而 WITH ROLLUP 用于天生分组小计和总计。选择利用哪一个取决于详细需求。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4