当前位置: 首页 > 知识库问答 >
问题:

mysql按相同重复日期时间查询组

酆英达
2023-03-14

我有一个疑问。我有一个表,其中有些记录重复日期时间。我必须把最后一个从日期时间重复的地方拿来。示例:

它应该返回ID3、4和7

你能帮我吗?谢谢!

共有2个答案

秦滨海
2023-03-14

获取相同日期时间中每个日期时间的最后id:

SELECT timestamp, max(id)
FROM table
GROUP BY timestamp;

获取同一日期时间中每一行的完整行:

SELECT DISTINCT
  timestamp,
  FIRST_VALUE(id) OVER (PARTITION BY timestamp ORDER BY id DESC),
  FIRST_VALUE(value) OVER (PARTITION BY timestamp ORDER BY id DESC)
FROM table;
郎欣然
2023-03-14

我认为您可以为此使用lead()。根据你的问题,它将是:

select t.*
from (select t.*, 
             lead(datetime) over (order by id) as next_datetime
      from t
     ) t
where next_datetime is null or next_datetime <> datetime;

根据您的示例数据,存在某种未指定的阈值。那么,类似这样的事情:

select t.*
from (select t.*, 
             lead(datetime) over (order by id) as next_datetime
      from t
     ) t
where next_datetime is null or
      next_datetime < datetime + interval 11 second;

注意:这假设datetime值与id值一起增加,这是一个合理的假设,给出了问题中的数据

 类似资料:
  • 我尝试创建一个查询,显示入住和退房日期之间的可用酒店。此外,当我为特定房间预订时,我将他们的预订列设置为1。这意味着,在现实生活中,当结账日期到来时,触发函数将该预订列设置成0。 如果酒店的所有房间都已预订(预订=1),并且这些房间的签入-退房日期是特定日期(签入-退房输入),则不要将该酒店放在列表中。我的查询不会显示我想要的结果。 查询:输入:国家(状态)、签入和签出。 当我运行查询时,它总是显

  • 问题内容: 我有这个SQL查询: 结果是这样的: 我现在的问题是我无法将DateCreated分组,因为它具有不同的时间。 我只想按日期分组。范例:2010-09-12 谢谢并恭祝安康… 问题答案: 我认为值得单独发布以下内容: 使用char转换来削减超时日期(广播或转换为varchar)比使用慢。我制定了[完整的脚本和性能测试结果以支持此断言 另外,请注意,您的GROUP BY列表与SELECT

  • 问题内容: 我在MySQL中有一张表,该表显示了我每天记录的小时数。我正在尝试建立一个视图,该视图将允许我按块/天范围快速将数据分组。最简单的情况是每月一次,这并不难。我可以将日期选择为“%y-%m”,然后按该列分组。 前任: 如果我按月分组,那很好。但是我的问题是,我需要从每月的13号到下个月的12号进行分组(例如:7月13日至8月12日,8月13日至9月12日,等等)。 有没有一种简单的方法可

  • 问题内容: 如何从mysql表中选择过去日期到当前日期的数据?例如,选择从2009年1月1日到当前日期? 我的“ datetime”列为datetime日期类型。请帮忙,谢谢 编辑: 如果说我想从2009年1月1日开始获得每天的数据,该如何编写查询?使用计数和函数之间? 问题答案: 或使用和:

  • 问题内容: 我在集合中将值存储为java.util.Date(),但是当我查询以获取两个特定日期之间的值时,最终得到的值超出了范围。这是我的代码: 插入 查询 当我在和之间查询时(基本上是fromDate = toDate),我得到的日期绝对不可能的对象。我在这里想念什么? 问题答案: 您正在执行的操作是仅在键覆盖中使用丢失运算符进行查询。您想要的是:

  • 问题内容: 我想将MySQL中的A 转换为日期。 我想将user.registration字段格式化为文本文件。 这是我的SQL: 我还尝试了日期转换: 我在写文本文件之前回显结果,然后得到: email1; name1; DATE_FORMAT(user.registration,’%d /%m /%Y’);新闻1 email2; name2; news2 如何将该字段转换为日期? 问题答案: