组合表以进行合并输出
在数据操作领域,将多个表合并为单个内聚输出是一个常见的挑战。考虑这样的场景,您有两个表,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中文网其他相关文章!