我有2列:
DEPT_ID号; DEPT_SUB_ID varchar2(5);
我想查找所有具有多个DEPT_SUB_ID唯一值的DEPT_ID。
这怎么办?
答案 0 :(得分:2)
我会使用:
select dept_id
from x
group by dept_id
having min(dept_sub_id) <> max(dept_sub_id);
在许多情况下,两个简单的聚合(例如min()
或max()
)的性能要优于count(distinct)
。
答案 1 :(得分:0)
简单地使用count不同。
select dept_id,count(distinct dept_sub_id)
from dept
group by dept_id
having count(distinct dept_sub_id) > 1;
答案 2 :(得分:0)
select dept_id, count(distinct dept_sub_id)
from x
group by dept_id
having count(distinct dept_sub_id) > 1
这里的键是count(distinct),用于计算dept_id中明显不同的dept_sub_id
分组依据,显然是按dept_id将计数分组
具有一个类似于group-by进行分组之后的“位置”。