我有一张桌子:
| P_id | Month | Year | Name |
624 09 2009 Test1
600 10 2010 Test2
624 10 2010 Test6
600 09 2011 Test7
我想按P_id
降序,Year
升序,然后Month
升序
根据订单,我想要每个P_id
的最后一条记录。
运行第1步后:
| P_id | Month | Year | Name |
624 09 2009 Test1
624 10 2010 Test6
600 10 2010 Test2
600 09 2011 Test7
期望的输出:
| P_id | Month | Year | Name |
624 10 2010 Test6
600 09 2011 Test7
答案 0 :(得分:3)
您可以使用row_number
:
select *
from (
select row_number() over (
partition by p_id
order by year desc, month desc) as rn
, *
from YourTable
) as SubQueryAlias
where rn = 1
子查询是必需的,因为您无法在row_number
子句中直接使用where
。