如何在 sqlite 中对 table 中的行进行排名?
How to rank rows in a table in sqlite?
如何创建一个根据两个或三个键对 table 的信息进行排名的列?
例如,在此 table 中,等级变量基于部门和姓名:
Dep | Name | Rank
----+------+------
1 | Jeff | 1
1 | Jeff | 2
1 | Paul | 1
2 | Nick | 1
2 | Nick | 2
我找到了 ,但它在 SQL 中,我认为它不适用于我的情况,因为所有信息都在一个 table 中,而且回复似乎 SELECT 和 JOIN 组合来自不同 table 的信息。
提前谢谢你
您可以计算当前组中当前行之前的行数:
UPDATE MyTable
SET Rank = (SELECT COUNT(*)
FROM MyTable AS T2
WHERE T2.Dep = MyTable.Dep
AND T2.Name = MyTable.Name
AND T2.rowid <= MyTable.rowid);
(rowid
列用于区分其他相同的行。如果有主键,请使用主键。)
如何创建一个根据两个或三个键对 table 的信息进行排名的列? 例如,在此 table 中,等级变量基于部门和姓名:
Dep | Name | Rank
----+------+------
1 | Jeff | 1
1 | Jeff | 2
1 | Paul | 1
2 | Nick | 1
2 | Nick | 2
我找到了
您可以计算当前组中当前行之前的行数:
UPDATE MyTable
SET Rank = (SELECT COUNT(*)
FROM MyTable AS T2
WHERE T2.Dep = MyTable.Dep
AND T2.Name = MyTable.Name
AND T2.rowid <= MyTable.rowid);
(rowid
列用于区分其他相同的行。如果有主键,请使用主键。)