如何返回到今年最高平均每小时价值

问题描述 投票:-2回答:2

我有读数的SQL表每10分钟服用。列是DATE_TIME(DATETIME)和Steam_Flow(真实)。我想获得一个总结,只有返回一行,每年代表该年度的最高平均流量(按小时)进行。

我有以下的那么远,

SELECT
    CAST(Date_Time AS DATE) [Date],
    DATEPART(hour, Date_Time) [Hour],
    Avg(Steam_Flow) [Avg Flow]
FROM Boiler_Data
WHERE
    Date_Time >= '2018-12-31 21:00'
    and Date_time <= '2019-01-01 02:50:'
GROUP BY
    CAST(Date_Time AS DATE),
    DATEPART(hour, Date_Time)
ORDER BY [Avg Flow] Desc
sql-server
2个回答
0
投票

你可以在外部查询中使用聚合的查询来计算,每小时平均流量,然后通过汇总一年。

在MySQL:

SELECT x.date_year, MAX(x.Avg_Flow)
FROM (
    SELECT YEAR(date_time) date_year, avg(Flow) Avg_Flow
    FROM mytable 
    GROUP BY YEAR(date_time), DATE_FORMAT(date_time, '%Y-%m-%d %h')
) x
GROUP BY x.date_year

在SQL Server:

SELECT x.date_year, MAX(x.Avg_Flow)
FROM (
    SELECT YEAR(date_time) date_year, avg(Flow) Avg_Flow
    FROM mytable 
    GROUP BY YEAR(date_time), DATEADD(hour, datediff(hour, 0, date_time), 0)
) x
GROUP BY x.date_year

0
投票

不知道你的表和变量类型的约束:

SELECT MAX(Steam_Flow), YEAR(Date_Time) FROM Boiler_Data GROUP BY YEAR(Date_Time);
© www.soinside.com 2019 - 2024. All rights reserved.