[英]MySQL How To Get Top N Rows per Each Group
我一直在尋找答案的很長時間,我在一個頁面中找到了一個很好的解決方案,但是我工作得不好,我想知道為什么嗎? URL是: http : //www.sqlines.com/mysql/how-to/get_top_n_each_group
我遵循的方法,這是我的代碼:
SELECT id,
type,
IF (@type = type, @type_rank + 1, 1) AS type_rank,
@type := type
FROM imagesforctool
LIMIT 10
結果是:
id type type_rank @type := type
192499 Men 1 Men
192500 Men 1 Men
192504 Men 1 Men
192508 Men 1 Men
192514 Men 1 Men
192515 Men 1 Men
192516 Men 1 Men
192518 Men 1 Men
192519 Men 1 Men
192520 Men 1 Men
type_rank
列不加。
怎么了?
SELECT id,
type,
@type_rank:=IF (@type = type, @type_rank + 1, 1),
@type := type
FROM imagesforctool ORDER BY type
LIMIT 10
這是正確的查詢。 您需要分配@type_rank
值
試試這個查詢
SELECT
id,
type,
@type_rank := IF(@current_type = type, @type_rank + 1, 1) AS type_rank,
@current_type := type
FROM
imagesforctool
ORDER BY
type
LIMIT
10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.