sqlite row_number() over (partition by

SQLite 数据库的 row_number() 函数可以用来生成一个序列,其中包含从 1 开始的整数。它可以在一个 SELECT 语句的结果集中使用,以便每一行都有一个独一无二的行号。

关键字 OVER 可以用来指定这个函数应用于哪些行。例如,你可以使用 OVER() 语句来让 row_number() 函数应用于所有行,也就是说它会对整个结果集中的所有行生成一个序列。

PARTITION BY 关键字可以用来将结果集分成多个分区,并为每个分区生成独立的序列。例如,你可以使用 PARTITION BY column_name 语句将结果集按照 column_name 列的值进行分区,然后对每个分区使用 row_number() 函数生成序列。

例如,假设有一个名为 "customers" 的表,其中包含以下数据:

id  name  city
1   Alice  New York
2   Bob    London
3   Alice  Paris
4   Eve    New York
5   Alice  London
6   Bob    Paris
7   Eve    London

你可以使用如下的 SELECT 语句来使用 row_number() 函数:

SELECT
  row_number() OVER (PARTITION BY city ORDER BY name) AS row_num,
  name, city
FROM customers;

这个语句会对每个城市分别生成一个序列,并且按照 name 列的值对每个分区进行排序。执行这个语句后,会得到以下的结果:

row_num  name  city
1        Alice  London
  •