gpt4 book ai didi

sql - Postgresql - 具有相关子查询的条件 SUM

转载 作者:行者123 更新时间:2023-11-29 13:18:54 27 4
gpt4 key购买 nike

我想计算一个 CASE 条件的 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() 函数,但由于它可以获取多条记录,我仍然遇到错误。

我相信它可以以某种方式完成,但我被卡住了。

任何人都可以提出一些建议。

顺便说一下,我正在使用 Postgresql 9.4

最佳答案

可以先做一个聚合。按照措辞,您的查询似乎是在尝试这样做:

SELECT t1.account,
SUM(CASE WHEN condition1 THEN t1.amount
WHEN condition2 THEN t2.sumamount
ELSE 0
END) as total
FROM t1 LEFT JOIN
(SELECT t2.account, SUM(t2.amount) as t2.sumamount
FROM t2
GROUP BY t2.account
) t2
ON t2.account = t1.account
GROUP BY t1.account

关于sql - Postgresql - 具有相关子查询的条件 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45155356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com