首页 > 数据库 > mysql教程 > SQL的UNION操作如何整合多个表的时间?

SQL的UNION操作如何整合多个表的时间?

Susan Sarandon
发布: 2025-01-04 15:05:41
原创
162 人浏览过

How Can SQL's UNION Operation Consolidate Hours from Multiple Tables?

组合表以进行合并输出

在数据操作领域,将多个表合并为单个内聚输出是一个常见的挑战。考虑这样的场景,您有两个表,KnownHours 和 UnknownHours,每个表包含费用编号、类别、月份和工作时间。目标是聚合小时数(不考虑月份)以获得统一视图。

要实现此目标,您可以利用 SQL 的 UNION 操作的强大功能。这允许您将多个查询的结果合并到一个数据集中。在这种特殊情况下,您需要使用 SUM() 聚合函数按费用编号和类别对小时进行分组。

完成此操作的 SQL 查询如下:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum;
登录后复制

这里,UNION ALL 关键字组合了两个单独查询的结果。第一个查询从 KnownHours 表中检索小时数,并按费用编号和类别对它们进行分组;第二个查询从 UnknownHours 表中检索小时,将它们视为属于“未知”类别。

通过使用 UNION ALL,省略了重复检查步骤,与单独使用 UNION 相比,性能更好。

此查询的结果是一个综合表,提供每个费用编号和类别的总工作时间,无论它们发生在哪个月份。

以上是SQL的UNION操作如何整合多个表的时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板