我在MySQL中的数据类似于:
NO Item
-----------------------
1 A
1 B
1 C
2 A
3 C
但我想为此生成序列号:
SrNo NO Item
-----------------------
1 1 A
2 1 B
3 1 C
1 2 A
1 3 C
答案 0 :(得分:0)
要完全按照您要求的方式获得结果,这里有一个查询:
SET @prev_value = NULL;
SET @rank_count = 0;
SELECT CASE
WHEN @prev_value = `NO` THEN @rank_count := @rank_count + 1
WHEN @prev_value := `NO` THEN @rank_count := 1 END AS `SrNo`, `NO`, `item`
FROM `Table1`
ORDER BY `NO`, `item`
Here是sqlfiddle,所以你可以自己测试一下。