group by 分组查询最晚时间需要的某个字段
select c.bond_outer_rate
from (select t.,row_number() over(partition by t.security_id order by t.rating_date desc) rn
from tbondrating t) c
where rn = 1
这个sql是按照security_id分组查出时间最晚(也就是最大的rating_date )的bond_outer_rate
执行完select t.,row_number() over(partition by t.security_id order by t.rating_date desc) rn
from tbondrating t之后的结果是
可以看到数据库是先将相同证券ID分组,然后按rating_date排序。
所以最后执行最开始的sql的话,就能查出相同证券ID(security_id )最晚时间(20180915)对应的评级(bond_outer_rate)了。