我有一个以下格式的表格
ID SOURCE_ID
1 1
2 1
3 1
4 2
5 3
6 3
7 4
8 4
9 4
10 4
11 4
12 1
13 1
14 3
15 3
16 3
17 3
18 2
19 2
我希望能够为每个唯一的source_id选择5条记录MAX。
所以我最终应该为source_id = 1返回5行,为souce_id = 2返回5行,依此类推。
有什么想法吗?提前谢谢。
答案 0 :(得分:0)
E.g:
SELECT id
, source_id
FROM
( SELECT id
, source_id
, CASE WHEN @prev = source_id THEN @i:=@i+1 ELSE @i:=1 END i
, @prev := source_id prev
FROM my_table
, (SELECT @prev:=null,@i:=0) vars
ORDER
BY source_id
, id
) x
WHERE i <=5
ORDER
BY id;