2012-07-09 49 views
0

我需要從datacontext的表中選擇日期和平均值,並且需要按年份和月份對它進行分組。 在SQL它看起來像這樣創建日期和平均值的查詢

select Year(data) as years, Month(data) as months, Avg(value) as prices from Prices 
group by Year(data),MONTH(data) 
order by years, months 

我創建了一個LINQ查詢

var query0 = from c in dc.Prices 
      where Convert.ToDateTime(c.data).CompareTo(left) >= 0 
        && Convert.ToDateTime(c.data).CompareTo(right) <= 0 
        && c.idsticker.Equals(x) 
       group c by new { ((DateTime)c.data).Year, ((DateTime)c.data).Month } 
        into groupMonthAvg 
       select groupMonthAvg; 

但我不知道怎麼弄的結果平均值

回答

1

使用平均功能。

var query0 = from c in dc.Prices 
      where Convert.ToDateTime(c.data).CompareTo(left) >= 0 
        && Convert.ToDateTime(c.data).CompareTo(right) <= 0 
        && c.idsticker.Equals(x) 
       group c by new { ((DateTime)c.data).Year, ((DateTime)c.data).Month } 
        into groupMonthAvg 
       select new 
       { 
        years = groupMonthAvg.Key.Year, 
        months = groupMonthAvg.Key.Month, 
        prices = groupMonthAvg.Average(x=>x.value) 
       }; 
1

只需使用Average功能在你的select

var query0 = from c in dc.Prices 
     where Convert.ToDateTime(c.data).CompareTo(left) >= 0 
       && Convert.ToDateTime(c.data).CompareTo(right) <= 0 
       && c.idsticker.Equals(x) 
      group c by new { ((DateTime)c.data).Year, ((DateTime)c.data).Month } 
       into groupMonthAvg 
      select new { 
       groupMonthAvg.Key.Year, 
       groupMonthAvg.Key.Month, 
       YearAverage = groupMonthAvg.Average(x=>x.Year), 
       MonthAverage = groupMonthAvg.Average(x=>x.Month) 
       }; 
1

這應該是d它:

var query0 = from c in dc.Prices 
      where Convert.ToDateTime(c.data).CompareTo(left) >= 0 
        && Convert.ToDateTime(c.data).CompareTo(right) <= 0 
        && c.idsticker.Equals(x) 
       group c by new { ((DateTime)c.data).Year, ((DateTime)c.data).Month } 
        into groupMonthAvg 
       select new { Year = groupMonthAvg.Key.Year, Month = groupMonthAvg.Key.Month, Average => groupMonthAvg.Average(i => i.value) }; 
+0

它不起作用。添加groupMonthAvg.Key? – lapots 2012-07-09 17:37:22

+0

@ user1432980啊,錯過了 – Candide 2012-07-09 18:08:51