gpt4 book ai didi

postgresql - 选择属于具有某些属性的组的所有行

转载 作者:行者123 更新时间:2023-11-29 13:30:58 25 4
gpt4 key购买 nike

我将 PostgreSQL 用于 Web 应用程序,遇到了一种我想不出有效编写方法的查询。

我想做的是从表格中选择所有行,当以某种方式分组时,该组符合某些条件。例如,构造此查询的简单方法可能是这样的:

SELECT *
FROM table T
JOIN (
SELECT iT.a, iT.b, SUM(iT.c) AS sum
FROM table iT
GROUP BY iT.a, iT.b
) TG ON (TG.a = T.a AND TG.b = T.b)
WHERE TG.sum > 100;

我遇到的问题是,这实际上加倍执行查询所需的时间,因为它实质上是从该表中选择行两次。

我怎样才能有效地构造这种类型的查询?

最佳答案

你可以尝试一个窗口函数,虽然我不知道它是否更有效率。我想这是因为它避免了连接。使用 explain

测试这个和你的查询
select *
from (
select
a, b,
sum(c) over(partition by a, b) as sum
from t
) s
where "sum" > 100

关于postgresql - 选择属于具有某些属性的组的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477963/

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