我知道這種類型的問題已被多次詢問,但我無法找到我的問題的好答案。 我試圖從表中獲取每個人的前3個查看記錄。從表格中選擇每個用戶的前3張圖片
MYTABLE
id user_id views
1 5 6
2 5 3
3 6 5
4 7 4
5 9 14
6 5 3
7 5 8
8 6 7
9 7 15
10 9 13
11 9 13
12 9 18
13 6 8
14 8 0
結果
id user_id views
12 9 18
9 7 15
5 9 14
10 9 13
13 6 8
7 5 8
8 6 7
1 5 6
3 6 5
4 7 4
2 5 3
14 8 0
我跟着這個鏈接http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/
我的查詢
select *
from mytable
where (
select count(*) from mytable as f
where f.user_id = mytable.user_id and f.views >= mytable.views
) < 4 order by user_id desc;
但這個查詢沒有獲取這些記錄意見相同。 請指點我正確的方向。
我不明白你的問題。但是,你可以簡單地通過這個查詢得到結果(你在你的文章中提到)......'SELECT * FROM mytable ORDER BY views DESC' –
@TunZarniKyaw差不多。 [10,9,13]和[11,9,13]都不在結果集中。 –
@TunZarniKyaw,我正試圖從表格中提取每個用戶只有3個最常見的記錄。以上僅僅是示例數據,並且有多個用戶輸入。我只需要每個用戶3個查看次數最多的記錄。 – Santosh