当前位置: 首页 > 面试题库 >

GROUP BY与MAX(DATE)[重复]

商业
2023-03-14
问题内容

这个问题已经在这里有了答案

提取具有列最大值的行 (35个答案)

3年前关闭。

我正在尝试在表格中列出每列火车的最新目的地(最大出发时间),例如:

Train    Dest      Time
1        HK        10:00
1        SH        12:00
1        SZ        14:00
2        HK        13:00
2        SH        09:00
2        SZ        07:00

理想的结果应该是:

Train    Dest      Time
1        SZ        14:00
2        HK        13:00

我尝试使用

SELECT Train, Dest, MAX(Time)
FROM TrainTable
GROUP BY Train

我收到一个“ ora-00979不是GROUP BY表达式”错误,提示我必须在我的group by语句中包含“目标”。但这肯定不是我想要的…

是否可以在一行SQL中完成?


问题答案:

您不能在结果集中包括未分组的未聚合列。如果火车只有一个目的地,则只需将“目的地”列添加到group by子句中,否则您需要重新考虑您的查询。

尝试:

SELECT t.Train, t.Dest, r.MaxTime
FROM (
      SELECT Train, MAX(Time) as MaxTime
      FROM TrainTable
      GROUP BY Train
) r
INNER JOIN TrainTable t
ON t.Train = r.Train AND t.Time = r.MaxTime


 类似资料:
  • 问题内容: 我只想从user_id等于1的用户表user_payments中选择最新的Membership_id。 这是表user_payment的样子: 我尝试以下代码没有成功: 我收到此错误:SQL错误:ORA-00934:此处不允许使用组功能00934。00000-“此处不允许使用组功能” 我该如何解决?提前致谢! 问题答案:

  • 问题内容: 我有以下查询: 这仍然为我提供所有订单号,我将如何只获得与MAX日期对应的订单号。 我要完成的工作是获取每个客户的最大订单日期并显示订单号。 谢谢 问题答案: 如果您使用的是支持窗口功能的RDBMS(例如SQL Server 2005+),也可以这样执行:

  • 问题内容: 好了,哪种更快更好用? 自动递增 或者 调用一个执行最大值的sql,然后添加一个 因此,最终的问题是您应该使用mysql还是自己使用mysql? 问题答案: 使用MAX的问题是隔离级别-充其量,由于读取不正确的记录,该值有可能过度膨胀。最糟糕的是,要获取当前最大值的查询是在前一次插入发生之前读取表,从而导致冲突。 另一个考虑因素是必须滚动自己的ID生成器和东西来检索ID,因为您不能使用

  • 我有两个数据框 > < li> 一个数据帧中的最大日期列::一列,一行- df1,列:最大日期 具有日期列:: df2列的多条记录:col1, col2, col3… colDate 我想要过滤器 df2 基于 df1.maxdate,

  • 我对Python和熊猫相当陌生,有一个问题我不太确定如何解决。我有一个熊猫DataFrame,其中包含在同一年为多支球队效力的曲棍球运动员: 我希望能够合并包含同一年的同一名球员的行,并按球员为其效力最多的球队排列列。在上面的例子中,B队的所有数字都是第一位的,因为球员A为B队打了最多的比赛,其次是A队,然后是C队。如果一名球员没有为多个队打过球或少于三个队打过球,我希望在给定的列中填写NA。 例

  • 问题内容: 我有一个看起来像这样的DataFrame: 我想将其转换为对属于某些bin的视图进行计数,如下所示: 我试过了: 但它仅提供汇总计数,而不提供用户计数。如何获得用户的垃圾箱计数? 总计计数(使用我的真实数据)如下所示: 问题答案: 您可以按垃圾箱 和 用户名分组,计算分组大小,然后使用: