按分钟和分秒排名

时间:2014-07-09 18:20:51

标签: sql sql-server

我正在尝试对数据进行排序,并且在发生这种情况时,我必须使用小时/分钟和秒来订购此序列。但是,当我按功能使用rank / partition时,它几乎就像根本不会将其识别为按时间顺序排列的数据。我尝试排序的数据示例如下:

Mod_Order   Last_Activity   ACTIVITY_DATE_DTTM     hdm_modif_dttm

1           NULL            15/08/2007 00:00:00     59:47.3
2           NULL            27/09/2007 14:30:02     59:22.9
3           NULL            27/11/2007 15:30:02     59:10.5
3           NULL            27/11/2007 15:30:02     58:38.9

正如你所看到的最后两个ACTIVITY_DATE_DTTM日期时间完全一样,所以我需要更进一步 - 我从hdm_modif_dttm字段中删除了日期,看它是否有任何区别,但它没有(我把它留作了时间虽然我认为它无论如何都没有任何区别)。所以我的代码如下:

Update q
        set q.Mod_Order = b.Mod_Order

from [#Temp_last_act_2]q
Left join
        (
select
    RANK () over 
    (partition by pathway_id
    order by pathway_id, ACTIVITY_DATE_DTTM,hdm_modif_dttm)   as Mod_Order,
    PATHWAY_ID,
    MODIF_DTTM,
    ACTIVITY_DATE_DTTM
    from #temp_Last_act_2
    ) as b on b.PATHWAY_ID = q.PATHWAY_ID 
        and b.MODIF_DTTM = q.MODIF_DTTM
        and b.ACTIVITY_DATE_DTTM = q.ACTIVITY_DATE_DTTM 

是否有人知道使用此功能的任何限制,我不知道或有一个功能可以更好地处理这个(或我真的很愚蠢?)

0 个答案:

没有答案