我正在寻找一种在 C# LINQ 中使用 lambda 格式每秒对记录进行分组的方法。在我的搜索中,我还没有找到一个好的方法来做到这一点。
SQL查询如下。
select count(cct_id) as 'cnt'
,Year(cct_date_created)
,Month(cct_date_created)
,datepart(dd,cct_date_created)
,datepart(hh,cct_date_created)
,datepart(mi,cct_date_created)
,datepart(ss,cct_date_created)
from ams_transactions with (nolock)
where cct_date_created between dateadd(dd,-1,getdate()) and getdate()
group by
Year(cct_date_created)
,Month(cct_date_created)
,datepart(dd,cct_date_created)
,datepart(hh,cct_date_created)
,datepart(mi,cct_date_created)
,datepart(ss,cct_date_created)
现在我能来的最接近的是以下,但它没有给我正确的结果。
var groupedResult = MyTable.Where(t => t.cct_date_created > start
&& t.t.cct_date_created < end)
.GroupBy(t => new { t.cct_date_created.Month,
t.cct_date_created.Day,
t.cct_date_created.Hour,
t.cct_date_created.Minute,
t.cct_date_created.Second })
.Select(group => new {
TPS = group.Key.Second
});
这似乎是按秒分组,但不考虑日期范围内的每一分钟,而是日期范围内每分钟的那一秒。要获得每秒事务数,我需要它分别考虑每月、每小时、每天、每分钟的每一分钟。
目标是从这个分组列表中提取最大值和平均值。任何帮助将不胜感激 :)