根据 SQL 中的其他字段将值从 1 开始递增

Increment value from 1 to onward based on other field in SQL

id result
KLLR 1
KLLR 2
KLLR 3
KLLR 4
OLRQ 1
OLRQ 2
PKRD 1
PKRD 2
PKRD 3

SQL根据其他字段从1开始递增,输出的计算字段就是结果。请查看图片以获得更清晰的信息。下面是我试过的 SQL。我想要另一个计算字段中的结果,如图所示。

SELECT id, SUM(COUNT(id)) AS result
FROM t1 
GROUP BY id

一个简单的行号应该适合你:

SELECT id,
       ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS Result
FROM t1;

您标记了 MySQL 和 SQL 服务器。请注意,它们是完全不同的产品,但同样适用于两者。 MySQL 在 8.0 中引入了 ROW_NUMBER()

对HansG的评论,

SELECT id,
       ROW_NUMBER() OVER (PARTITION BY id ORDER BY (SELECT NULL)) AS Result
FROM t1;

会给你提到的随机顺序。