m0_65749592 2022-12-06 17:55 采纳率: 34.4%
浏览 20
已结题

请教一下SQL,条件:查时间七天数据,每天不同rommID的最新一条数据

请教一下SQL,条件:查时间七天数据,每天不同rommID的最新一条数据, 由于七天的roomID有相同的情况,比如怎么做到 七天的roomID为140001的数据都拿到,而且还是每天最新的那条数据,这个Sql有会的吗

img

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-06 18:04
    关注

    望采纳

    SELECT *
    FROM (
        SELECT *, ROW_NUMBER() OVER (PARTITION BY room_id ORDER BY date_time DESC) AS row_num
        FROM table
        WHERE date_time BETWEEN DATEADD(day, -7, GETDATE()) AND GETDATE()
    ) t
    WHERE t.row_num = 1
    

    上面的代码中,我们首先使用ROW_NUMBER()函数按照room_id分组,并按照date_time字段降序排序,生成一个行号。然后在进行子查询时,过滤出date_time字段在过去七天内的数据。最后,在外层查询中,过滤出行号为1的数据,即每天不同room_id的最新一条数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 12月6日