1

私は以下の表を持っています

ID    TYPE    
---   ----    
1     P    
1     W    
2     P    
3     W    
4     W    
4     X    
5     P    
6     null  

以下のような新しいテーブルを作成する必要があります

ID   Count of Type      Code    
--  --------------     -------    
1        2             null    
2        1             P      
3        1             W    
4        2             null    
5        1             P    
6        0             null    


1st col ---> ID    
2nd col ---> count of "type" for an ID    
3rd col ---> if count(type) = 1 then TYPE      
             else null    

ORACLESQLクエリの作成を手伝ってください

4

1 に答える 1

3

max関数でサブクエリを使用してコードの値を取得し、それをcaseステートメントで使用して、count=1の場合にのみ最終クエリの値を取得できます。

select id, cnt, case when cnt=1 then maxtype else null end as code
from 
(select id, count(*) as cnt, max(type) as maxtype
from t1
group by id) t2
于 2012-04-26T02:18:17.953 に答える