我需要爲每個用戶(user_id)計算3個最大值,每個方式。PostgreSQL:顯示每個組的幾個最大行數?
我的表:
> db=# SELECT * FROM test;
id | user_id | value | way
----+------------+----------+------
1 | 1 | 10 | 1
2 | 2 | 30 | 1
3 | 3 | 20 | 1
4 | 1 | 50 | 2
5 | 2 | 40 | 2
6 | 3 | 60 | 2
7 | 2 | 70 | 3
8 | 4 | 5 | 1
(8 rows)
表,我需要:
user_id | MAX1 | MAX2 | MAX3
----+------------+----------+------
1 | 0 | 1 | 1
2 | 2 | 0 | 1
3 | 1 | 1 | 0
4 | 1 | 0 | 0
我。即user_id 2具有最大值方式1,方式3和第三個最大值方式3。 user_id 1在方式2上有第二最大值,在方式1上有第二最大值。 等
請幫我創建正確的查詢。
謝謝!
我試試你的查詢!它的工作,但user_id 4,沒有顯示。 – Jurik 2015-04-03 13:49:35
@Jurik,請再次查看示例輸入數據,user_id = 4的第4個值的方式= 1,並且它的方式爲1,因此根據您的輸入數據和描述,它既沒有max1,也沒有max2,也沒有max3 ,所需輸出中的最後一條記錄是錯誤的。 – jfun 2015-04-03 13:56:37
你是對的,對不起! – Jurik 2015-04-03 15:19:35