SQLite 中的
row_number()
函数可以为每一行生成一个唯一的行号。这个函数可以接受一个
partition by
子句,用于将行分组,为每组行生成独立的行号。
例如,如果有一张名为
orders
的表,包含订单信息,其中有两个字段:
customer_id
和
order_date
,你可以使用如下查询来生成每个客户的每个订单的行号:
SELECT customer_id, order_date,
row_number() OVER (PARTITION BY customer_id ORDER BY order_date) AS row_num
FROM orders;
这个查询会生成一个新的列 row_num
,为每个客户的每个订单生成一个独立的行号。例如,如果客户 A 在 2021 年 1 月 1 日和 2021 年 1 月 2 日分别下了两个订单,那么它们的行号分别为 1 和 2。如果客户 B 在 2021 年 1 月 3 日下了一个订单,那么它的行号为 1。
注意,row_number()
函数需要在一个 over()
函数中使用,并且可以接受一个 order by
子句来指定行号生成的顺序。