【发布时间】:2016-11-02 15:04:41
【问题描述】:
我需要设置一个查询,允许我选择组中最近更新的记录。如果两条记录有最新更新,则应选择更新历史最长的一条。如果两者都为空,或者两者具有相同的历史长度,则不应选择两者。这些字段是 varchar2 格式。第一条记录和最后一条记录的最后两位数字对应于这些记录的年份。历史长度中的字母对应于获取的数据类型的代码。下面是一个示例表,具有预期的结果:
| group_id | id | First Record | Last Record | History Length |
---------------------------------------------------------------------------------
| a | 1 | record98 | record16 | SNDAWEDSPSEDSYSEAOE |
| a | 2 | record97 | record14 | AVNDAWEDSPSEDSYS |
| b | 3 | record96 | record15 | BVNDAWEDSPSEDSYSEAOE |
| b | 4 | record98 | record16 | UNDAWEDSPSEDSYSEAOP |
| b | 5 | record95 | record16 | UNDAWEDSPSEDSYSEAOPHYE|
| c | 6 | record96 | record12 | BVNDAWEDSPSEDSYSE |
| c | 7 | record10 | record15 | HUSIKD |
| d | 8 | null | null | null |
| d | 9 | null | null | null |
| e | 10 | record11 | record16 | ASIKSO |
| e | 11 | record11 | record16 | SIXLLO |
-------------------------------------------------------------------------------------------------------------------
输出
| group_id | id | First Record | Last Record | History Length |
---------------------------------------------------------------------------------
| a | 1 | record98 | record16 | SNDAWEDSPSEDSYSEAOE |
| b | 5 | record95 | record16 | UNDAWEDSPSEDSYSEAOPHYE|
| c | 7 | record10 | record15 | HUSIKD |
历史不如最新记录重要,所以如果太难实现,我只需要最新记录的那一行。谢谢。
【问题讨论】: