选择包含的值

时间:2014-10-21 14:16:13

标签: oracle aggregation

我正在使用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

2 个答案:

答案 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;