DENSE_RANK中的ORDER BY()

时间:2012-11-25 08:33:22

标签: sql

我想使用DENSE_RANK()来分区周数,并按ID排序 它工作正常。

但我有一些情况,我有一个持续时间为两周数字的身份证, 由于订单的原因,它给了他另一个不同于第一个的身份。

这是结果:

CardID      WeekN       RowNum

2467        1           1   
**2481      1           *2***   
2468        2           1   
2473        2           2   
2482        2           3   
**2481      2           *4***   
2473        3           1   
2482        3           2   
2481        3           3

我对RowNum的查询是:

 DENSE_RANK() OVER (PARTITION BY Lng_CardWWeek  ORDER BY Duration , CardID  Desc) as RowNum

我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

SELECT DENSE_RANK() 
OVER (PARTITION BY Lng_CardWWeek  ORDER BY Duration , CardID  Desc) AS RowNum
FROM <<tablename>> AS <<name>> 
[WHERE <<condtion>>]
GROUP BY CardID
ORDER BY RowNum

你必须使用SELECT来指定你试图从表中获取一些数据。此外,你必须包括表的名称。

如果您只是在后续行中列出具有相同CardID的元素,请同时使用OVER子句之外的ORDER BY子句。

尝试使用外部GROUP BY,每个CardID只能获得一行。