2017-09-26 14 views
0

質問結果のローテーションをlevelフィールドで入力します。現在、私のSQLは2つのフィールドで単純なグループです!ショー以下のように:SQLクエリ結果を使用してローテーションを行う方法は?

SELECT uid, level, count(uid) as counter 
FROM user_log 
GROUP BY uid, level; 

+-------+----------+---------+ | uid | level | counter | +-------+----------+---------+ | 101 | 2 | 1890 | | 101 | 1 | 230 | | 102 | 2 | 430 | | 102 | 1 | 30 | +-------+----------+---------+ どのように私は結果は以下のように表示させるのですか?唯一の2つのレベルのために

+-------+----------+---------+ | uid | cunter1 | counter2| +-------+----------+---------+ | 101 | 230 | 1890 | | 102 | 30 | 430 | +-------+----------+---------+

+1

一切ありません。またはレベルを上げることができますか? –

+0

@MKhalidJunaidはい、レベルは固定されています(ただし、一部のレベルに達しないことがあります)。 –

+0

探しているキーワードはPivotです。 –

答えて

3

SELECT t.uid, 
     MAX(CASE WHEN t.level = 1 THEN t.counter END) counter1, 
     MAX(CASE WHEN t.level = 2 THEN t.counter END) counter2 
FROM (SELECT uid, level, count(uid) as counter 
     FROM user_log 
     GROUP BY uid, level) t 
GROUP BY t.uid 
ORDER BY t.uid; 
関連する問題