1
我想計算CASE條件的SUM,其中一個條件使用相關子查詢來查找結果,但我堅持使用語法。Postgresql - 條件SUM與相關子查詢
這裏是我創建到現在爲止,但有錯誤的查詢的一個示例:
更新
SELECT t1.account,
t1.date
SUM(CASE WHEN condition1 THEN t1.amount
WHEN condition2 THEN (select sum(t2.amount) from t2 where t2.account = t1.account and t2.date = t1.date)
ELSE 0 END) as total
FROM t1
GROUP BY t1.account, t1.date
上述查詢返回時,子查詢的輸出是多個記錄錯誤的結果。簡而言之,condition2的結果是sum(t2.amount)*(記錄數)。
我試圖從子查詢中刪除sum()函數,但因爲它可以獲取多個記錄,我仍然有一個錯誤。
我相信它可以做某事,但我卡住了。
任何人都可以提出一些建議。
btw我正在使用Postgresql 9.4
謝謝你的幫助。我已經更新了查詢,以更精確地查詢我想要的內容,並用查詢的當前行爲描述了問題。即使你的解決方案,我也有同樣的結果。我相信這是由於雙重聚合,外部SUM()。有沒有另外一種方法可以避免這種行爲? –
@GiannisDim由於您無法通過編寫查詢來表達預期輸出,因此您需要將數據樣本和預期輸出顯示爲數據。 –