我在这里看到了一些类似问题的线索,但是我找不到符合我需求的东西.
考虑下表和exapmle数据:
CREATE TABLE foo(a int, b int);
INSERT INTO FOO VALUES(1, 3);
INSERT INTO FOO VALUES(1, 3);
INSERT INTO FOO VALUES(1, 4);
INSERT INTO FOO VALUES(2, 5);
INSERT INTO FOO VALUES(2, 3);
INSERT INTO FOO VALUES(3, 10);
Run Code Online (Sandbox Code Playgroud)
考虑这个查询:
SELECT a,
sum(b)
FROM foo
GROUP BY a;
Run Code Online (Sandbox Code Playgroud)
它工作正常.我想改变该查询,以便它只匹配总和大于9的组.我的(失败)尝试是:
SELECT a,
SUM(b)
FROM foo
WHERE SUM(b) >9
GROUP BY a;
Run Code Online (Sandbox Code Playgroud)
在postgres中执行此操作的正确方法是什么?
您不能在where子句中使用聚合表达式- 这是该having子句的用途:
SELECT a, SUM(b)
FROM foo
GROUP BY a
HAVING SUM(b) > 9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |