我正在数据库中查找过去20年中每4天的最大值总和:
SELECT
DATE_TRUNC('day', date) AS interval_start,
SUM(value) AS total_value
FROM
your_table
WHERE
date >= NOW() - INTERVAL '20 years'
GROUP BY
DATE_TRUNC('day', date)
HAVING
COUNT(*) >= 4;
个字符
请提供另一个SQL查询
2条答案
按热度按时间bfrts1fy1#
目前还不清楚这4天的时间应该是以块为单位,还是像每个日期的4天滑动窗口一样。
将尝试解决这两个问题。首先,使用一些示例数据:
字符串
型
1.在4天的时间段内
型
型
如果您要查找总计最大的时段,则可以从结果数据集中选择(1或2)
vojdkbi02#
你发布的查询语法是PostgreSQL,但你在Oracle下标记了你的问题,所以你应该改变它。
下面的查询将对4个连续的日期进行分组,并计算每个组的值的总和,然后根据总和以降序排列各组(测试数据在
WITH
块中):字符串