mysql - 从包含较长时间段的表中选择每 N 小时间隔
问题描述
我有一个如下所示的列,从 2019 年到 2021 年显示 24 小时:
2019-01-01 00:00:00
2019-01-01 01:00:00
2019-01-01 02:00:00
2019-01-01 03:00:00
2019-01-01 04:00:00
2019-01-01 05:00:00
2019-01-01 06:00:00
2019-01-01 07:00:00
2019-01-01 08:00:00
...
2019-01-02 00:00:00
2019-01-02 01:00:00
2019-01-02 02:00:00
2019-01-02 03:00:00
2019-01-02 04:00:00
2019-01-02 05:00:00
2019-01-02 06:00:00
2019-01-02 07:00:00
2019-01-02 08:00:00
...
我怎么能每隔 4 小时选择一次时间点?我期望的是:
2019-01-01 00:00:00
2019-01-01 04:00:00
2019-01-01 08:00:00
...
我尝试了一些选择,例如:
select Time_UTC from t1
GROUP BY DATE(Time_UTC), hour(Time_UTC) DIV 4;
就像这个问题:MySQL - 从时间戳列中选择每 2 小时的间隔
但它返回一个错误:
Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 't1.Time_UTC' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我知道有一些方法可以解除限制。但我无权这样做。
解决方案
这工作得很好,只有完整的 Group by,你需要使用聚合函数
CREATE TABLE t1 (`Time_UTC` varchar(19)) ; INSERT INTO t1 (`Time_UTC`) VALUES ('2019-01-01 00:00:00'), ('2019-01-01 01:00:00'), ('2019-01-01 02:00:00'), ('2019-01-01 03:00:00'), ('2019-01-01 04:00:00'), ('2019-01-01 05:00:00'), ('2019-01-01 06:00:00'), ('2019-01-01 07:00:00'), ('2019-01-01 08:00:00'), ('2019-01-02 00:00:00'), ('2019-01-02 01:00:00'), ('2019-01-02 02:00:00'), ('2019-01-02 03:00:00'), ('2019-01-02 04:00:00'), ('2019-01-02 05:00:00'), ('2019-01-02 06:00:00'), ('2019-01-02 07:00:00'), ('2019-01-02 08:00:00')
SELECT Time_UTC FROM ( select MIN(Time_UTC) AS Time_UTC,DATE(Time_UTC) , hour(Time_UTC) DIV 4 from t1 GROUP BY DATE(Time_UTC), (hour(Time_UTC) DIV 4)) t1 ORDER BY Time_UTC;
| 时间_UTC | | :----------------- | | 2019-01-01 00:00:00 | | 2019-01-01 04:00:00 | | 2019-01-01 08:00:00 | | 2019-01-02 00:00:00 | | 2019-01-02 04:00:00 | | 2019-01-02 08:00:00 |
db<>在这里摆弄
推荐阅读
- java-8 - JAX-WS - wsimport 工具未正确创建 Web 服务客户端
- sql - golang正则表达式获取日志文件中的SQL语句
- php - 如何在 Symfony 上处理数据库更改
- ajax - 我有这个错误同步 XMLHttpRequest ajax
- machine-learning - 特征越多,线性模型越完善
- android - 在 10 个项目后插入 Gridview 行
- python - python pandas dict对象不可调用,解析json
- shell - 按列对文件内容进行排序
- sql - 如何选择只有 w10 兼容应用的机器和用户
- python - python中如何使用__add__方法添加稀疏向量