其他列上的DATE DESC + group的SQL顺序

时间:2015-08-19 11:00:48

标签: sql tsql sql-order-by

我尝试了很多不同的分组和排序语法,但我真的很难得到我需要的东西。

我正在尝试通过DATE DESC订购,但我也希望PROJECTS能够粘在一起(无论项目的日期顺序如何)

以下是我目前正在处理的数据。

ACCOUNT PROJECT DATE
P050    D       2015-07-23
P057    C       2015-04-30
P057    C       2015-05-29
S001    A       2015-05-30
S001    A       2015-06-30
T004    B       2015-06-30
T004    B       2015-04-30
T004    B       2015-06-30
S001    A       2015-07-31
T004    B       2015-08-10
T004    B       2015-01-19
S001    A       2015-07-23
P057    C       2015-06-29

1 个答案:

答案 0 :(得分:3)

您可以计算每个项目的最大日期,然后将其加入原始表格。然后,您可以按最大(或最小,如果您喜欢)日期排序,然后是项目,然后是特定活动:

select t.*
from table t join
     (select project, max(date) as maxd
      from table
      group by project
     ) tt
     on t.project = tt.project
order by tt.maxd desc, tt.project, t.date desc;