说我有下表:
id | sub_id | Name
----------------------
1 | 7 | Abe
1 | 90 | Bill
1 | 500 | Tom
2 | 1 | Gilbert
3 | 15 | Jose
3 | 18 | Don
我是否可以选择所有结果并根据id
按顺序对结果进行编号? AKA,每次检测到新的id
时,序列都会从0开始。与SQL Server的RANK和DENSE_RANK函数类似。所以结果看起来像这样:
id | sub_id | Name | SequenceNumber
-----------------------------------------
1 | 7 | Abe |1
1 | 90 | Bill |2
1 | 500 | Tom |3
2 | 1 | Gilbert |1
3 | 15 | Jose |1
3 | 18 | Don |2
我可以通过这样的方式生成一个从1开始并在最后一个行号(上例中为6)结束的数字序列:
SELECT @row := @row + 1 as row, t.*
FROM my_table t, (SELECT @row := 0) r
但这不是我真正需要的。建议?