SQL 如何按日期对每个条目进行排序
SQL How to order each entry by date
我有一个customer_ids的列表,一些信息被更改的日期,以及相应的更改。我想按日期顺序对每个客户的每个更改进行编号。例如;我有一些看起来像下面的东西
Cust_id Date information
-----------------------------------------------------
12345 2015-04-03 blue hat
12345 2015-04-05 red scarf
54321 2015-04-12 yellow submarine
我想要一个看起来像这样的输出;
cust_id change_number Date information
---------------------------------------------------------------
12345 1 2015-04-03 blue hat
12345 2 2015-04-0 red scarf
54321 1 2015-04-12 yellow submarine
这将是一个很大的 table,因此它需要有一定的效率。
每位客户每天最多有 1 个条目。
感谢您提供的任何帮助。
正如印度人所说,试试这个:
select cust_id,
Row_number() over(partition by cust_id order by date) change_number,
Date,
information
from tablename;
如果您想通过更改号码订购,您需要使用这样的内部 select:
SELECT *
FROM (
SELECT *
, ROW_NUMBER() OVER (PARTITION BY Cust_id ORDER BY [Date]) As Change_Number
FROM yourTable) t
ORDER BY
Cust_id, Change_Number;
只需使用 ORDER BY 子句:
SELECT *
FROM (
SELECT *
, ROW_NUMBER() OVER (PARTITION BY Cust_id ORDER BY [Date]) As Change_Number
FROM yourTable) t
ORDER BY
Cust_id, Change_Number;
我有一个customer_ids的列表,一些信息被更改的日期,以及相应的更改。我想按日期顺序对每个客户的每个更改进行编号。例如;我有一些看起来像下面的东西
Cust_id Date information
-----------------------------------------------------
12345 2015-04-03 blue hat
12345 2015-04-05 red scarf
54321 2015-04-12 yellow submarine
我想要一个看起来像这样的输出;
cust_id change_number Date information
---------------------------------------------------------------
12345 1 2015-04-03 blue hat
12345 2 2015-04-0 red scarf
54321 1 2015-04-12 yellow submarine
这将是一个很大的 table,因此它需要有一定的效率。 每位客户每天最多有 1 个条目。 感谢您提供的任何帮助。
正如印度人所说,试试这个:
select cust_id,
Row_number() over(partition by cust_id order by date) change_number,
Date,
information
from tablename;
如果您想通过更改号码订购,您需要使用这样的内部 select:
SELECT *
FROM (
SELECT *
, ROW_NUMBER() OVER (PARTITION BY Cust_id ORDER BY [Date]) As Change_Number
FROM yourTable) t
ORDER BY
Cust_id, Change_Number;
只需使用 ORDER BY 子句:
SELECT *
FROM (
SELECT *
, ROW_NUMBER() OVER (PARTITION BY Cust_id ORDER BY [Date]) As Change_Number
FROM yourTable) t
ORDER BY
Cust_id, Change_Number;