我有一个要求,显示重复的行号重复值为每一个新出现。
样品表 orders
带列 AGENT_CODE
我希望预期的结果是
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
但我想要的是,对于每个新出现的行,必须按预期输出中所示的顺序打印行号。
1条答案
按热度按时间g9icjywg1#
你想要类似的东西吗
DENSE_RANK() OVER (ORDER BY AGENT_CODE)
需要mysql 8+。在旧版本中,您可以简单地执行以下操作:ps:如果您想使用用户变量,那么您需要另一个名为
@prevagent
.