我正在寻找一种在 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
                                                });
这似乎是按秒分组,但不考虑日期范围内的每一分钟,而是日期范围内每分钟的那一秒。要获得每秒事务数,我需要它分别考虑每月、每小时、每天、每分钟的每一分钟。
目标是从这个分组列表中提取最大值和平均值。任何帮助将不胜感激 :)