Oracle 选择一个包含的值
我正在使用Oracle SQL,需要查询方面的帮助。希望这不是太容易了。我在谷歌上找不到答案 我有一个表,需要按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分组的解决
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