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

以最多(日期)分组

以最多(日期)分组

吃鸡游戏 2019-07-27 19:15:20
以最多(日期)分组我想列出一张桌子上每列火车的最新目的地(最大起飞时间),例如: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 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

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-28
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

下面是一个只使用左联接的例子,我认为它比其他任何组都更有效: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-28
  • 3 回答
  • 0 关注
  • 368 浏览
慕课专栏
更多

添加回答

举报

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