我正在使用PostgreSQL 8.4。若要计算有关约束的总和
我有以下SQL查询:
SELECT p.partner_id,
CASE WHEN pa.currency_id = 1 THEN SUM(amount) ELSE 0 END AS curUsdAmount,
CASE WHEN pa.currency_id = 2 THEN SUM(amount) ELSE 0 END AS curRubAmount,
CASE WHEN pa.currency_id = 3 THEN SUM(amount) ELSE 0 END AS curUahAmount
FROM public.player_account AS pa
JOIN player AS p ON p.id = pa.player_id
WHERE p.partner_id IN (819)
GROUP BY p.partner_id, pa.currency_id
的事情是,查询没有我所期待的。我意识到这一点,但现在我想了解那个查询究竟做了什么。我的意思是,执行查询之后将会计算什么SUM
。你能澄清吗?
你可能想'SUM(CASE WHEN pa.currency_id = 1,则相当于ELSE 0 END)AS curUsdAmount' – 2014-11-24 17:00:25
@juergend是的,绝对,但什么sum的计算与我的sql脚本。 – 2014-11-25 07:53:23