Эквивалент данного кода PostgreSQL в C# Linq
Есть данный запрос на PostgreSQL:
SELECT t.flight_id, COUNT(*) AS c, COALESCE(SUM(t.amount), 0) AS coal
FROM ticket_flights AS t
GROUP BY t.flight_id
HAVING COUNT(*) > 5
Не могу понять как его написать в C#. Вот, что у меня вышло:
var x = from tf in db.Ticket_Flights
group tf by tf.Flight_Id into g
where g.Count() > 5
select new { g.Key, Count = g.Count(), Sum = g ?? 0.0};
Вроде первые 3 строки переписаны правильно, но вот с select-ом проблемы.
Ответы (1 шт):
Автор решения: Alex Krass
→ Ссылка
Ваша группировка содержит элементы, вам нужно посчитать их сумму по нужному полю amount.
var x = from tf in db.Ticket_Flights
group tf by tf.Flight_Id into g
where g.Count() > 5
select new { g.Key, Count = g.Count(), Sum = g.Sum(x => x.amount) ?? 0.0};