为了账号安全,请及时绑定邮箱和手机立即绑定

以最多(日期)分组

以最多(日期)分组

天涯尽头无女友 2019-07-16 18:02:09
以最多(日期)分组我想列出一张桌子上每列火车的最新目的地(最大起飞时间),例如:Train    Dest      Time1        HK        10:001        SH        12:001        SZ        14:002        HK        13:002        SH        09:002        SZ        07:00预期的结果应该是:Train    Dest      Time1        SZ        14:002        HK        13:00我试过用SELECT Train, Dest, MAX(Time)FROM TrainTableGROUP BY Train我得到了一个“or-00979而不是按表达式分组”的错误,说我必须通过语句将‘Dest’包括在我的组中。但这肯定不是我想要的.。在一行SQL中可以这样做吗?
查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

SELECT train, dest, time FROM ( 
  SELECT train, dest, time, 
    RANK() OVER (PARTITION BY train ORDER BY time DESC) dest_rank    FROM traintable  ) where dest_rank = 1


查看完整回答
反对 回复 2019-07-16
?
慕沐林林

TA贡献2016条经验 获得超9个赞

下面是一个只使用左联接的例子,我认为它比其他任何组都更有效:ExchangeCore博客

SELECT t1.*FROM TrainTable t1 LEFT JOIN TrainTable t2ON (t1.Train = t2.Train AND t1.Time < t2.Time)WHERE t2.Time IS NULL;


查看完整回答
反对 回复 2019-07-16
  • 3 回答
  • 0 关注
  • 456 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信