如何在 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 列用于区分其他相同的行。如果有主键,请使用主键。)