SQL order by DATE DESC + group on other Column
SQL order by DATE DESC + group on other Column
我尝试了很多不同的分组和排序语法,但我真的很难得到我需要的东西。
我正在尝试按 DATE DESC 排序,但我也希望项目保持在一起(无论项目属于哪个日期顺序)
这是我目前正在处理的数据。
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
您可以计算每个项目的最大日期,然后将其加入原始 table。然后您可以先按最大(或最小)日期排序,然后是项目,然后是特定的 activity:
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;
我尝试了很多不同的分组和排序语法,但我真的很难得到我需要的东西。
我正在尝试按 DATE DESC 排序,但我也希望项目保持在一起(无论项目属于哪个日期顺序)
这是我目前正在处理的数据。
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
您可以计算每个项目的最大日期,然后将其加入原始 table。然后您可以先按最大(或最小)日期排序,然后是项目,然后是特定的 activity:
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;