You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现按日获取最高值?SQL查询调整需求

按日统计数据最高值的SQL实现

原查询只能获取指定时间段内的全局最大值,要实现按日统计每日最高值,核心是把时间戳按日期分组,再对每组计算最大值。以下是具体实现:

核心思路

通过日期截断函数将timestamp字段转换为纯日期格式(去除时分秒),然后按这个日期字段分组,最后对每组的value取最大值。不同数据库的日期处理函数略有差异,下面列出主流数据库的写法:

1. 特定时间段的每日最高值

保留原查询的时间范围过滤条件,添加分组逻辑:

MySQL / MariaDB

SELECT DATE(timestamp) AS date,
       MAX(value) AS daily_max_value
FROM table
WHERE timestamp BETWEEN '2018-07-22 00:00:00' AND '2025-04-22 23:59:59'
GROUP BY DATE(timestamp)
ORDER BY date;

PostgreSQL

SELECT DATE_TRUNC('day', timestamp)::DATE AS date,
       MAX(value) AS daily_max_value
FROM table
WHERE timestamp BETWEEN '2018-07-22 00:00:00' AND '2025-04-22 23:59:59'
GROUP BY DATE_TRUNC('day', timestamp)
ORDER BY date;

SQL Server

SELECT CAST(timestamp AS DATE) AS date,
       MAX(value) AS daily_max_value
FROM table
WHERE timestamp BETWEEN '2018-07-22 00:00:00' AND '2025-04-22 23:59:59'
GROUP BY CAST(timestamp AS DATE)
ORDER BY date;

2. 全表数据的每日最高值

只需去掉时间范围的WHERE条件即可:

MySQL / MariaDB

SELECT DATE(timestamp) AS date,
       MAX(value) AS daily_max_value
FROM table
GROUP BY DATE(timestamp)
ORDER BY date;

示例结果(基于你提供的数据)

执行特定时间段查询(范围2018-07-22至2025-04-22)后,会得到如下结果:

datedaily_max_value
2018-07-24196
2018-07-25469

如果执行全表查询,结果会包含所有有数据的日期:

datedaily_max_value
2018-07-05258
2018-07-07300
2018-07-08323
2018-07-09250
2018-07-10380
2018-07-24196
2018-07-25469

内容的提问来源于stack exchange,提问作者montes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:31:05