Ranking by Group in MySQL

后端 未结 2 394
悲哀的现实
悲哀的现实 2020-12-17 07:34

I have a table with one column as follows:

name
-------
Michael
Michael
Michael
Michael
John
John
John
Alex
Alex

I need to rank them to giv

2条回答
  •  北荒
    北荒 (楼主)
    2020-12-17 08:02

    There's nothing in mysql that lets you do this directly, but you can hack it in:

    SET @prev := null;
    
    SET @cnt := 1;
    
    SELECT name, IF(@prev <> name, @cnt := 1, @cnt := @cnt + 1) AS rank, @prev := name
    FROM yourtable
    ORDER BY name
    

    This sort of thing is easier done in your client app, using the same basic logic.

提交回复
热议问题