簡體   English   中英

Linq計算平均值,總計並在查詢中比較結果

[英]Linq calculate average,total and compare the result in query

我在以下查詢中遇到麻煩,即如何在選擇塊中添加其他內容,我也想要一些更好的方法來編寫以下查詢

var x = csvParser.ParseCsv(@"data.csv");
var unsettledCustomers = x.GroupBy(g=>g.Id).
    Select(gg =>new
    {
        Id=g.Key,
        Total=g.Sum(xx=>xx.Stake),
        Avg=g.Average(ss=>ss.Win)
    }); 
var unsettledCustomers = x.GroupBy(g => g.Id)
    .Select(g => new
    {
        Id = g.Key,
        Total = g.Sum(xx => xx.Stake),
        Avg = g.Average(ss => ss.Win),
        AvgerageBet = g.Average(ss => ss.Stake),
        UnusualBets = g.Where(bet => bet.Stake > (10 * g.Average(ss => ss.Stake))).ToList()
    });

var allUnusualBets = unsettledCustomers.SelectMany(y => y.UnusualBets);

您發布的問題:

我想確定賭注(下注)比其投注歷史中該客戶的平均下注高出10倍以上的賭注...

您的數據,其中ID =客戶ID。 請注意,在任何情況下,平均下注* 10都不比下注高,因此根據您在問題中定義的內容,樣本數據中也沒有異常下注。

Id:1,平均投注:400,平均投注時間10:4000,最高投注:1000

Id:2,平均投注:15,平均投注時間10:150,最高投注:20

Id:3,平均投注:110,平均投注時間10:1100,最高投注:300

Id:4,平均投注:237.5,平均投注時間10:2375,最高投注:300

Id:5,平均投注:73.3333333333333,平均投注時間10:733.333333333333,最高投注:100

Id:6,平均投注:162.5,平均投注時間10:1625,最高投注:500

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM