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;