我在为平均列使用正确的语法。我所拥有的-来自RavenDB Studio编辑器:

地图:

from area in docs.Level5_AdministrativeAreas
select new
{
     area.NAME_4,
     totalPrice = area.pricePerSquareMetre,
     areaCount = 1,
     priceAverage = 0
}


减少:

from result in results
group result by new { result.NAME_4 } into g
select new
{
   NAME_4 = g.Key.NAME_4,
   totalPrice = g.Sum(x => x.totalPrice),
   areaCount = g.Sum(x => x.areaCount),
   priceAverage = totalPrice / areaCount
}


计数和总价正在正确计算,但是我不知道如何引用totalPriceareaCount

是否需要额外的选择块?我尝试了“ g.totalPrice”和“ g.priceAverage”,但无法识别。

谢谢您的帮助 !

最佳答案

减少部分需要像这样:

减少:

from result in results
group result by new { result.NAME_4 } into g
let theCount = g.Sum(x => x.areaCount)
let theTotal = g.Sum(x => x.totalPrice)
select new
{
   NAME_4 = g.Key.NAME_4,
   totalPrice = theTotal,
   areaCount = theCount ,
   priceAverage = theTotal / theCount
}


=>阅读部分Common Pitfalls with MapReduce Indexes

10-04 23:22