ラムダ形式を使用して1秒あたりのレコードをグループ化するC#LINQの方法を探しています。私の検索では、これを行うための良い方法をまだ見つけていません。
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
});
これは秒単位でグループ化されているように見えますが、日付範囲の個々の分ごとではなく、日付範囲の毎分の秒ごとに考慮されています。1秒あたりのトランザクション数を取得するには、月、時間、日、分の各分を個別に考慮する必要があります。
目標は、このグループ化されたリストから最大値と平均値を取得することです。どんな助けでも大歓迎です:)