在SQL Lite中对相同数据进行排名

时间:2017-02-09 17:59:55

标签: sql sqlite

我的表格如下

CREATE TABLE test(
   ID INT
);

使用以下数据

Sample Data

我需要以下结果

ID    Rank
100   1
100   2
105   1
105   2
105   3

我只需要使用普通的SQL Query没有特殊功能

1 个答案:

答案 0 :(得分:4)

您可以在相关查询中使用rowid来获得结果。因为rowid唯一地标识为行,所以我们可以在我们的情况下使用它来进行相关计数以分配行号。

试试这个:

select id, (
        select count(*)
        from test t2
        where t.id = t2.id
            and t2.rowid <= t.rowid
        ) rank
from test t;