Код: Выделить всё
return await query.GroupBy(x => new
{
Id = x.xId,
Date = x.Date
})
.Select(x => new OutputClass(x.Key.Id,
x.Key.Date,
x.Sum(g => g.Tot.Value),
x.Sum(g => g.Table1.Table2.Ind ? g.Tot.Value : 0),
x.Sum(g => g.Table1.Table2.War ? g.Tot.Value : 0),
x.Sum(g => g.Table1.Table2.Non ? g.Tot.Value : 0)
)
)
.ToListAsync();
Код: Выделить всё
SELECT
SUM(...),
SUM(CASE WHEN ...),
SUM(CASE WHEN ...),
SUM(CASE WHEN ...)
FROM
Конечно, производительность — это катастрофа. Я пытался поместить Select перед GroupBy, но это не помогло.
Есть идеи, чтобы выполнить все в базе данных (а не в памяти), не использовать чистый SQL и избегать создания представления?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -sum-issue
Мобильная версия