gpt4 book ai didi

sql - PostgreSQL 按单个值过滤组

转载 作者:行者123 更新时间:2023-11-29 12:29:09 24 4
gpt4 key购买 nike

我有一个返回数据的查询,如图所示;

name | field | count_1 | count_2 |
-----|-------|---------|---------|
John | aaa | 3 | 3 |
John | bbb | 3 | 3 |
John | ccc | 3 | 3 |
John | ddd | 1 | 1 |
Dave | aaa | 3 | 3 |
Dave | bbb | 3 | 3 |
Dave | ccc | 3 | 3 |
Dave | ddd | 3 | 3 |
-----|-------|---------|---------|

我需要根据 count_1count_2=3 的计数过滤此数据。在上述情况下,对于字段 ddd 上的 John,两个计数都不满足条件,因此无论 John 是否满足其他条件,查询都应该只返回 Dave 在其他领域。我怎样才能做到这一点?

只要某个人在给定字段上不符合单个计数,就应该将其过滤掉。

最佳答案

如果我做对了,一个 NOT EXISTS可能对你有帮助。

SELECT *
FROM (<your query>) x
WHERE NOT EXISTS (SELECT *
FROM (<your query) y
WHERE y.name = x.name
AND (y.count_1 <> 3
OR y.count_2 <> 3));

替换<your query>对于您的查询,它会为您提供已发布的结果(或为此使用 CTE,但请注意,这可能会导致 Postgres 出现性能问题)。

也许有一个更优雅的解决方案,它已经“捷径”到您的查询中,但要找到这样的解决方案需要有关您的架构和当前查询的更多信息。

关于sql - PostgreSQL 按单个值过滤组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519425/

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