Oracle 选择一个包含的值

Oracle 选择一个包含的值,oracle,aggregation,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 输出表只需要包括Y和N都包含在值表中的ID。输出: ID 1 2 5 另一种按ID分组的解决

我正在使用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
输出表只需要包括Y和N都包含在值表中的ID。输出:

ID
1
2
5

另一种按ID分组的解决方案,使用
HAVING
仅返回那些具有>1
不同
值的解决方案:

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

谢谢这正是我想要的。
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