作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找到如何从每分钟将数据记录到数据库的记录设备中选择每小时的第一行。
我的示例数据:
Val Date_time
1734618 2017-06-09 14:01:04
1734609 2017-06-09 14:00:05
1734601 2017-06-09 13:59:04
1734593 2017-06-09 13:58:04
...
1734127 2017-06-09 13:02:04
1734119 2017-06-09 13:01:04
1734111 2017-06-09 13:00:05
1734103 2017-06-09 12:59:04
SELECT *
FROM table
WHERE Date_time IN ( SELECT MIN(Date_time) AS Date_time
FROM table
GROUP BY DATE_FORMAT(Date_time,'%Y-%m-%d %H:%i'))
Val Date_time
1734609 2017-06-09 14:00:05
1734111 2017-06-09 13:00:05
最佳答案
不要使用使用子选择的解决方案,性能会受到影响,并且上面当前的 4 个示例会随着时间的推移给你一个不正确的结果(尝试添加 1734618, '2017-05-09 14:01:04')。这种方法更有效:
SELECT
TOP 1 WITH TIES
*
FROM <yourtable>
ORDER BY
row_number()over
(partition by dateadd(hour, datediff(hour, 0, Date_time),0) ORDER BY Date_time)
关于SQL : How to query selecting only first row in every hour?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493654/
我是一名优秀的程序员,十分优秀!