首頁 >資料庫 >mysql教程 >SQL的UNION操作如何整合多個表的時間?

SQL的UNION操作如何整合多個表的時間?

Susan Sarandon
Susan Sarandon原創
2025-01-04 15:05:41178瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn