gpt4 book ai didi

sql - 查找具有相同值的行 PostgreSQL

转载 作者:搜寻专家 更新时间:2023-10-30 22:36:31 24 4
gpt4 key购买 nike

在一个表中,有多个值的id

id|value
--|------
1 |a
1 |b
2 |a
2 |b
3 |a
3 |c
4 |a
5 |a
5 |b
...

那么我如何才能选择所有具有相同值的 id1?我想要的应该是这样的

id
--
1
2
5

最佳答案

如果您想要完全相同的值,您可以使用基于集合的方法:

select t.id
from t join
t t1
on t.value = t1.value and t1.id = 1
group by t.id
having count(*) = (select count(*) from t where t.id = 1);

假设没有重复项,这会计算与每个 id 匹配的值的数量,然后检查是否存在相同的数字。

我应该承认 string_agg() 方法也很优雅:

select id
from (select id, string_agg(value, ',' order by value) as values,
max(case when id = 1 then string_agg(value, ',' order by value)) over () as values_1
from t
group by id
) t
where values = values_1;

关于sql - 查找具有相同值的行 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105695/

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