2016-10-27 6 views

答えて

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; 

SQLの結果セットが順序付けられていないのでorder byは、非常に重要です。あなたの結果は意味をなさないために注文する必要があります。

+0

はゴードン・リノフ@ありがとうを使用してカウント – Chris

0
STATE_IDによって

だけのグループと、その後数(個別column_name_)

select state_id from (select state_id,COUNT(DISTINCT ai_cd) as cnt from employee group by state_id) where cnt==3 
関連する問題