c# 按时间聚合的实现问题

zw_l_1989 zw_l_1989 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有两种仪表:A和B
A数据库字段:id isOpen sttime gid
B数据库字段:id isOpen sttime gid
没什么原因 在数据库里就是分了两个表(实际上有更多个)
isOpen 是记录开关的bit型字段 sttime 是记录时间的datetime字段,gid是地理区域id

要解决的问题是在一个时间段内(小时,天,或月),该仪表的负载率(假设100个仪表,开了35个,则是35%)
本人一开始思路 在使用MSSQL的聚合函数datepart 可以完美按时间段统计出负载率
但由于这是不同的两种仪表,而实际用途中 要根据地理区域进行统计(同一地理区域内可能同时有这两种仪表)

故表A的统计结果与表2的统计结果不能简单聚合:假设A有128个,开了32个,B有64个开了8个
数据库聚合出的是A:25% B:12.5%
这两个数据无法直接相加除2,你懂的.

现在我已经实现了一个简单的选择迭代器,可以吧A,B的数据都取出来
但在分组上没有思路(C#实现类似MSSQL的datepart和group by功能)
故来求助下大家

有个要求,不能使用存储过程(存储过程也要跨表,花时间实现个迭代器 就是为了不使用存储过程)
在加入新仪表的时候 改存储过程太麻烦了 实际中已经有7 8种仪表了 可能将来会更多.
迭代器个人认为思路比较清晰 也已经实现了能满足 功能的简单迭代
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
zw_l_1989
C# 111,129 成员 642,538 内容