【发布时间】:2019-05-02 11:23:39
【问题描述】:
我需要为每个新出现的重复值显示重复的行号。
带有AGENT_CODE 列的示例表orders,我希望预期的输出类似于
Sl agent_code
------------------
1 A001
2 A002
2 A002
2 A002
2 A002
2 A002
2 A002
2 A002
3 A003
3 A003
4 A004
4 A004
4 A004
4 A004
5 A007
5 A007
5 A007
6 A008
6 A008
通过编写查询,我能够获得具有 1,2,3,4....19 之类的序列的行号:
SET @row_number := 0;
SELECT @row_number := @row_number + 1 AS row_number, AGENT_CODE
FROM orders, (SELECT @row_number := 0) t
ORDER BY agent_code
但我想要的是行号必须按预期输出中所示的每次新出现的顺序打印。
【问题讨论】:
-
你使用的是什么 MySQL 版本?
-
5.2.37 MySQL 服务器
-
您需要先在派生表中进行显式排序。阅读此答案以了解您得到错误结果的原因:stackoverflow.com/a/53465139/2469308
标签: mysql sql dense-rank