我有一个表(ID,CASENO,STATUS),它有很多行,都有一个唯一的ID - CASENO有一组行 - 我想创建一个查询,显示所有CASENO值,其中所有的该CASENO的行具有相同的STATUS
ID CASENO STATUS
1 123 X
2 123 Y
3 123 X
4 234 X
5 234 X
6 567 Z
7 567 Z
8 567 Z
9 789 A
10 789 B
因此,这将返回234和567,因为它们在STATUS中具有相同的值
答案 0 :(得分:5)
select caseno
from my_table
group by caseno
having count(distinct status) = 1
聚合中将隐式忽略任何NULL
,而不是导致聚合本身返回NULL
,即使您count(distinct status)
NULL
也应该没问题状态值。
<强>更新强>
要按caseno
列出状态计数列表,您可以执行以下操作:
select caseno, status, count(*)
from my_table
group by caseno, status
-- include next line if you only want cases where the count is > 1
-- having count(*) > 1
答案 1 :(得分:0)
@Mike你可以在执行@davek查询后发布查询结果。我可以看到它给出了预期的结果。