Search code examples
mysqlrow-number

How to get RowNumber() with Partition in MYSQL


RowNumber() with Partition in MYSQL

i want the below output based on id-Foreign key

 id | Name | rownumber
 1     a      1
 1     b      2
 1     ads    3    
 2    dsfs    1  
 2    sadf    2
 2    sdfsa   3
 2    dfsfs   4 
 3     dsf    1
 3     adsf   2
 3     sdd    3 

Solution

  • I barely understood what you mean. There's no RowNumber() function in mysql, and partitioning has nothing to do with your request.

    It's:

    SELECT 
      t.*, 
      @cur:= IF(id=@id, @cur+1, 1) AS RowNumber, 
      @id := id 
    FROM 
      t CROSS JOIN 
        (SELECT @id:=(SELECT MIN(id) FROM t), @cur:=0) AS init 
    ORDER BY 
      t.id