アプリケーションは基本的な株式分析アプリです。
データセットは次のようになります。
`ABC、真、2012 年 9 月 21 日、101.34
ABC、偽、2012 年 9 月 21 日、202.45
CDE、真、2012 年 9 月 21 日、345.67
ABC、真、2012 年 9 月 22 日。456.78
` SQLはここにあります:
SELECT TickerCode, Australian from Stk_ClosingPrices group by TickerCode,
Australian having count(*) >= @daysToAverageOver order by TickerCode
結果として私が望むのは、最初の 2 つのフィールドによるグループ化と、各グループの数のカウントです。上記の場合、次のようになります。
ABC、真、2 ABC、偽、1 CDE、真、1
そして、Count > パラメータが渡されたものだけを返したいと思います。
アルゴリズムは 20 日間の移動平均を計算するため、英語のクエリは「データ レコードが 20 を超える株式のキーを教えてください」となります。
これは私が得た距離ですが、カウントを正しく取得できません。すべてのグループで常に同じです.
var query = (from cp in this.ObjectContext.stk_ClosingPrices group cp by new {
cp.TickerCode, cp.Australian
}
into grp
select new {
grp.Key.TickerCode, grp.Key.Australian,
Count = grp.Distinct()
}).ToList();
grp.Sum(Quantity)に似た例を見たことがありますが、それを .Count() 述語に再キャストできないようです。
どうもありがとう、