我正在使用Oracle SQL,我需要查询帮助。希望这不是一件容易的事。我在谷歌找不到答案。
我有一个表需要由ID
列聚合,然后只选择两个值包含在某个表中的记录(以及它们两个)。
表格例如
ID | Value
1 | Y
1 | N
2 | N
2 | N
2 | Y
3 | Y
3 | Y
4 | Y
5 | Y
5 | N
5 | Y
5 | N
输出表只需要包含Value表中包含Y和N的ID。输出:
ID
1
2
5
答案 0 :(得分:2)
按ID分组并使用HAVING
仅返回>的另一种解决方案1个DISTINCT
值:
with v_data(id, value) as (
select 1, 'Y' from dual union all
select 1, 'N' from dual union all
select 2, 'Y' from dual)
select id
from v_data
group by id
having count(distinct value) > 1
答案 1 :(得分:0)
select distinct a.id
from your_table a inner join your_table b on a.id = b.id and a.value != b.value;