」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 單個SQL查詢如何基於多個條款條件檢索不同的總和?

單個SQL查詢如何基於多個條款條件檢索不同的總和?

發佈於2025-01-29
瀏覽:223

How Can a Single SQL Query Retrieve Distinct Sums Based on Multiple WHERE Clause Conditions?

使用多個WHERE子句檢索不同的數據

在SQL中,可以使用WHERE子句來過濾特定的行,從而定制從表中檢索數據的方式。這個問題提出了從同一張表中提取兩個不同的數據集的挑戰,每個數據集都滿足不同的WHERE子句。

示例表“transactions”存儲財務交易的記錄,這些記錄以其ID、賬戶ID、預算ID、獲得的積分和交易類型為特徵。任務是計算每個唯一預算ID的分配積分總和和發放積分總和。

為此,可以構造一個單個SQL查詢,該查詢結合了必要的WHERE子句。以下查詢實現了所需的結果:

SELECT budget_id, 
       SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated,
       SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued
FROM transactions
GROUP BY budget_id

此查詢使用CASE WHEN語句根據交易類型有條件地對積分求和。對於每個預算ID,查詢計算與“allocation”類型關聯的積分總和,並將其存儲在“allocated”列中。類似地,它計算“issue”類型的積分總和,並將其存儲在“issued”列中。通過按預算ID分組結果,查詢生成預期的結果集,其中包含每個預算的分配積分和發放積分的單獨列。

此查詢演示了SQL在組合WHERE子句以從表中檢索特定數據子集方面的靈活性,使其成為執行複雜數據檢索任務的強大工具。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3