Top 'n' results for each keyword

后端 未结 2 1764
-上瘾入骨i
-上瘾入骨i 2021-01-14 21:43

I have a query to get the top \'n\' users who commented on a specific keyword,

SELECT `user` , COUNT( * ) AS magnitude
FROM `results`
WHERE `keyword` = \"ec         


        
2条回答
  •  半阙折子戏
    2021-01-14 22:13

    You can use a pattern like this (from Within-group quotas (Top N per group)):

    SELECT tmp.ID, tmp.entrydate 
    FROM ( 
      SELECT 
        ID, entrydate, 
        IF( @prev <> ID, @rownum := 1, @rownum := @rownum+1 ) AS rank, 
        @prev := ID 
      FROM test t 
      JOIN (SELECT @rownum := NULL, @prev := 0) AS r 
      ORDER BY t.ID 
    ) AS tmp 
    WHERE tmp.rank <= 2 
    ORDER BY ID, entrydate; 
    +------+------------+ 
    | ID   | entrydate  | 
    +------+------------+ 
    |    1 | 2007-05-01 | 
    |    1 | 2007-05-02 | 
    |    2 | 2007-06-03 | 
    |    2 | 2007-06-04 | 
    |    3 | 2007-07-01 | 
    |    3 | 2007-07-02 | 
    +------+------------+ 
    

提交回复
热议问题