在報表開發中,經常遇到這樣的問題:分組后,只需要每個分組最新的一條數據,其他的就不要了
此時的思路應該是:對分組進行排序,並編號,然后select編號為1的記錄即可。
代碼如下:
select rn,a,b,c from (select ROW_NUMBER() OVER(PARTITION BY a ORDER BY b DESC) rn,a,b,c from table)
where rn = 1
原表:
執行代碼后:
此思路可以運用到各種分組並按分組排序后獲取第一條數據,即取分組最小記錄或最大記錄的情況..