使用多個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