[英]Postgres Aggregating conditional sum
我正在嘗試對訂單總重量的條件產品求和(我希望這是有道理的)。 我得到錯誤:
錯誤:聚合函數調用不能嵌套
第 6 行:, SUM ( CASE WHEN pc.type = 'TEES' THEN (SUM (opd.qt ...
這是查詢摘錄:
SELECT DISTINCT
o.work_order_number dn
, SUM(opd.qty) units
, SUM (CASE WHEN pc.type = 'TEES' THEN (SUM (opd.qty) * .75)
WHEN pc.type = 'JERSEYS' THEN (SUM (opd.qty) * 1.5)
END) AS weight
嘗試:
SELECT o.work_order_number dn
, SUM(opd.qty) units
, SUM ( opd.qty * CASE pc.type
WHEN 'TEES' THEN 0.75
WHEN 'JERSEYS' THEN 1.5
END ) AS weight
FROM ...
GROUP BY o.work_order_number
那么你可以做的是嵌套你的選擇語句 例如
select sum(weight),sum(etc)
from (
SELECT DISTINCT o.work_order_number dn
, (opd.qty) units
, ( CASE WHEN pc.type = 'TEES' THEN ((opd.qty) * .75)
WHEN pc.type = 'JERSEYS' THEN ((opd.qty) * 1.5) END) AS weight)
).
所以第一個 select 語句處理你的 case 語句,第二個 select 語句總結你的字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.