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

选择具有最大时间戳的值

国仰岳
2023-03-14
问题内容

我有一张表:

id|val|updated
1 | 31|2012-01-12
1 | 34|2012-01-15
2 | 41|2012-01-15
3 | 44|2012-01-15
4 | 66|2012-01-01

我需要选择具有最大更新值的id和val。因此,对于此表,结果应为:

1| 34| 2012-01-15
2| 41| 2012-01-15
3| 44| 2012-01-15
4| 66| 2012-01-01

问题答案:

这需要MAX()在与主表连接的子查询中进行汇总。

SELECT
  tbl.id,
  tbl.val,
  tbl.updated
FROM tbl JOIN (
  /* Subquery gets MAX(updated) per id  to JOIN against */
  SELECT 
    id,
    MAX(updated) as updated
  FROM tbl
  GROUP BY id
) t2 ON tbl.id = t2.id AND tbl.updated = t2.updated


 类似资料:
  • 问题内容: 我在SO上看到过类似类型的问题,但是,我无法找到针对我特定问题的解决方案。(仅供参考,这些不是我的真实专栏,只是一个简短的示例)。 我有一个基本表: 因此,我想做的是能够: 我已经尝试过类似的东西: 但这不会返回我要查找的行。修复此查询的任何帮助都将非常有用。 非常感谢。 问题答案: 编辑: 顺便说一句,如果您想知道为什么原来的查询不起作用,让我们分解一下: 从…中选择一些东西 其中=

  • 问题内容: 我正在尝试从数据库表中仅选择今天的记录。 目前我使用 但这需要过去24小时的结果,我需要它只选择今天的结果,而忽略时间。如何仅根据日期选择结果? 问题答案: 使用和 我想 使用 仍然使用INDEX 。 在演示中查看执行计划

  • 我是JOOQ的新手。我有一个用例,需要从表中选择具有最新时间戳字段值的行。 我的表按事件日期分区。所以当我查询表时,我得到了相同id的多个记录。现在,我不想为同一个id获得许多记录,相反,我只需要返回一个具有最新时间戳字段值的记录。 使用基本的SQL语法,我能够实现这一点,但我无法通过JOOQ实现这一点。 SQL: Java: 预期结果:如何获得

  • 在oracle DB中检索具有大组最大值的行时遇到问题。 我的桌子看起来是这样的: id,col1,col2,col3,col4,col5,date_col 谢谢你的提示! 干杯

  • 问题内容: 我试图一次从一张桌子上得到2行。上周的最小日期时间(今天-7)和最晚的日期(今天)的一个。 我的桌子: 我可以通过以下方式选择上周的数据: 但我只想要第1行和第125行,因为这些是用于计算的行。所以我的问题是: 如何从上一个查询的结果中选择2行(带有MIN和MAX日期)? 问题答案: 您可以使用此: 编辑: 由于两台计算机完全有可能具有相同的值,因此应更新查询以在子句中也包含过滤器。我

  • 问题内容: 我已经看到了很多解决此类问题的解决方案尤其是此SQL仅选择在Column上具有Max Value的行,但是似乎没有一个合适的解决方案: 我有以下表格布局,即附件的版本控制,这些附件绑定到实体: 输出应该是最大版本号,按group_id和Entity_id分组,如果有帮助,我只需要一个单个entity_id的列表即可: 我想出的是这种自我加入: 但是,只有在不同的实体不共享相同的组号的情