回答

收藏

按SQL获取每个组的最新记录

技术问答 技术问答 175 人阅读 | 0 人回复 | 2023-09-12

我有下表:  6 [3 |* c* K8 B' R' g) a
-----------------------------------------------------------ID     oDate         oName     oItem    oQty    oRemarks-----------------------------------------------------------2016年11      -01-01    A          5001    2        2016016年                         2016016-01-01    A         002      1       test2016年3       -01-01    B         -01-02    B           2016              -01-02    C           001     26       2016-01-03    B         2016       -01-03    B           ff.我想得到每个名字的最新记录。所以结果应该是:  
/ L# N0 t9 F0 m2 d& F-----------------------------------------------------------oDate         oName     oItem    oQty    oRemarks-----------------------------------------------------------2016-01-01    A          2016    2016                     -01-01    A          test2016-01-02    C       -01-03    B        -01-03    B        ff.谁知道该怎么办才能得到这个结果?
+ C8 G2 K" d% S1 J& ]谢谢你。/ \4 @5 _1 H  |- Y2 A& i
                                                               
- `5 g  Q5 |4 `1 R( k8 D! ]. a    解决方案:                                                                9 i2 R) _# V5 k  w6 @& t: I) X
                                                                该rank窗口子句允许你,好了,根据一些分区排名行,然后你可以只选择顶部的:
1 p5 a# O$ v. e, W- B% L: K: lSELECT oDate,oName,oItem,oQty,oRemarksFROM   (SELECT oDate,oName,oItem,oQty,oRemarks,              RANK() OVER (PARTITION BY oName ORDER BY oDate DESC) AS rk        FROM   my_table) tWHERE  rk =
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则