SQL如何按日期对每个条目进行排序

时间:2015-08-04 09:35:21

标签: sql sql-server date label rank

我有一个customer_id列表,一些信息的更改日期以及相应的更改。我想按照日期顺序对每个客户的每次更改进行编号。所以例如;我有一些看起来像下面的东西

    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

这将是一个非常大的表,所以它需要有点高效。 每位客户每天最多入场1次。 您可以给予任何帮助。

3 个答案:

答案 0 :(得分:3)

如果您想订购一个类似的更改号码,您需要使用这样的内部选择:

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;

答案 1 :(得分:2)

正如印度人所说,试试这个:

<div class="image_div_background">
<img scr="www.yourDomineName.com/violin-clip-art-violin-clip-art-1.jpg"/>
<div>

答案 2 :(得分:0)

只需使用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;