如何根据日期时间点归并, 并通过月份分类

sdluhaibing sdluhaibing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现在我有如下的表数据
Date Value SiteId
2016-03-23 00:05:00.000 245833.0152000000 1
2016-03-23 00:10:00.000 150117.9056000000 1
2016-03-23 00:15:00.000 279134.5132500000 1
2016-03-23 00:20:00.000 146963.7195700000 1
2016-03-23 00:25:00.000 152732.6481400000 1
2016-03-23 00:30:00.000 136986.6713100000 1
2016-03-23 00:35:00.000 340922.0038000000 1
2016-03-23 00:40:00.000 263542.3197700000 1
2016-03-23 00:45:00.000 218160.9406900000 1
2016-03-23 00:50:00.000 150001.5314700000 1

2016-03-23 00:05:00.000 245833.0152000000 2
2016-03-23 00:10:00.000 150117.9056000000 2
2016-03-23 00:15:00.000 279134.5132500000 2
2016-03-23 00:20:00.000 146963.7195700000 2
2016-03-23 00:25:00.000 152732.6481400000 2
2016-03-23 00:30:00.000 136986.6713100000 2
2016-03-23 00:35:00.000 340922.0038000000 2
2016-03-23 00:40:00.000 263542.3197700000 2
2016-03-23 00:45:00.000 218160.9406900000 2
2016-03-23 00:50:00.000 150001.5314700000 2

还有一个表是链接SiteId对应的名字SiteName

数据是几年内的,每天每隔五分钟有一条记录。

现在想得到这样的表,
第一年是 年月
第二列是 SiteName
第三列是时间点(从00:05:00.000到第二天的00:00:00.000)
第四列是这一个时间点 在这一个月内 ,特定的SiteName下的value的平均值


简单点的话, 只考虑是一年内的数据, 并指定了SiteName和月份的话, 可以这么写:

SELECT  convert(char(8),[Date],108)  as T, AVG([value]) as Average
FROM t1
where DATEPART(mm,[Date])= 3 --Month
and [SiteId] = (select [Id] from t2 where [SiteName] = 'BBB') --Site
group by convert(char(8),[Date],108)


如果加上两列 年月 和SiteName的话, 该怎么写呢

求大虾帮忙
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
sdluhaibing
MS-SQL Server 34,876 成员 254,635 内容