关于reduce part of RavenDB index, average calculation的语法问题
Syntax question on reduce part of RavenDB index, average calculation
我正在努力寻找平均列的正确语法。我所拥有的——来自 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
}
计数和总价计算正确,但我不知道如何引用 totalPrice
和 areaCount
。
是否需要额外的 select 块?我试过 "g.totalPrice" 和 "g.priceAverage",但无法识别。
感谢您的帮助!
可能不太理想,但这行得通(谈论只见树木不见森林...)
priceAverage = g.Sum(x => x.totalPrice) / g.Sum(x => x.areaCount)
Reduce 部分需要像这样:
减少:
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
}
我正在努力寻找平均列的正确语法。我所拥有的——来自 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
}
计数和总价计算正确,但我不知道如何引用 totalPrice
和 areaCount
。
是否需要额外的 select 块?我试过 "g.totalPrice" 和 "g.priceAverage",但无法识别。
感谢您的帮助!
可能不太理想,但这行得通(谈论只见树木不见森林...)
priceAverage = g.Sum(x => x.totalPrice) / g.Sum(x => x.areaCount)
Reduce 部分需要像这样:
减少:
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
}