我有一个SQL表,每10分钟读取一次。 列是Date_Time(DateTime)和Steam_Flow(Real)。 我想得到一个摘要,该摘要每年仅返回一行,代表该年的最高平均流量(按小时)。
到目前为止,我有以下内容...
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
答案 0 :(得分: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
答案 1 :(得分:0)
在不知道表的本质和变量类型的情况下:
def post_fix(string):
lst = []
for i in string:
if '(' in lst:
pass
elif valid(i) is True:
int(i)
lst.append(i)
elif '+' in string:
'+' == sum(lst)
print(sum(lst))
post_fix('1 2 3 +')