2017-09-26 85 views
0

我希望我的查詢結果按level字段旋轉!目前,我的sql是由兩個簡單的組提交的!如下圖顯示:如何使用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 | +-------+----------+---------+ 如何使下面的結果說明了什麼?

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

+1

都沒有。的水平固定或可以增加? –

+0

@MKhalidJunaid是的,級別是固定的,(但是,某些用戶可能無法達到某個級別) –

+0

您應該查找的關鍵字是Pivot。 –

回答

3

僅針對2級:

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;