一尘不染

如何在MySQL中使用分区获取RowNumber()

mysql

在MySQL中具有分区的RowNumber()

我想要基于id外键的以下输出

 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

阅读 392

收藏
2020-05-17

共1个答案

一尘不染

我几乎不明白你的意思。RowNumber()mysql中没有任何功能,分区与您的请求无关。

它的:

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
2020-05-17