我有一个看起来像这样的表:
x----------y------z
a------ 2014---28
a------ 2013---26
b------ 2014---38
b------ 2013---25
c------ 2013---18
c------ 2014---17
并且需要它看起来像这样:
x----------y------z
b------ 2014---38
b------ 2013---25
a------ 2014---28
a------ 2013---26
c------ 2014---17
c------ 2013---18
所以我需要根据Z从高到低进行排序,但我需要在其下方的最后几年日期。我可以靠近但不够近,请帮忙!
答案 0 :(得分:1)
select t1.* from mytable t1
join (
select max(z) max_z, x
from mytable
group by x
) t2 on t2.x = t1.x
order by t2.max_z desc, t1.x, t1.z desc, t1.y desc
答案 1 :(得分:0)
如果可用分析函数:
select x,y,z from
(
select t1.*
,max(z) over (partition by x) mz
from mytable t1
)
order by mz desc, x,z desc, y desc