我有一个包含列的表员工(state_cd,emp_id,emp_name,ai_cd)如何使用ai_cd中的3个不同值显示disticnt state_cd
答案应该是
state_cd ai_cd
------- --------
TX 1
2
5
CA 9
10
11
答案 0 :(得分:2)
通常在应用程序中更好地完成此类操作。但是,如果您真的想要,可以在查询中执行此操作:
select (case when row_number() over (partition by state_cd order by ai_cd) = 1
then state_cd
end) as state_cd,
ai_cd
from employee e
order by e.state_cd, e.ai_cd;
order by
非常重要,因为SQL结果集是无序的。您的结果需要订购以便有意义。
答案 1 :(得分:0)
只需按state_id分组,然后使用count(Distinct column_name _)
进行计数select state_id from (select state_id,COUNT(DISTINCT ai_cd) as cnt from employee group by state_id) where cnt==3