Page 1 of 1

Linq ließ Join, Group By und Count

Posted: 14 Apr 2025, 17:37
by Anonymous
Ich versuche zu zählen, wie viele Nachrichten pro Stunde gesendet werden. Aber mein Code gibt ein falsches Ergebnis zurück < /p>
Dies ist eine ursprüngliche SQLite -Abfrage, die ich verwendet habe. Es funktioniert richtig. < /p>

Code: Select all

SELECT Hours.hour, ifnull(count(Messages.hour),0) as count Hours LEFT JOIN Messages on Messages.hour = Hours.hour by Hours.hour
< /code>
Aber ich bin ein neu bei Linq und hier ist mein Code und meine Abfrage. < /p>
int[] Hours = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 };

var sortByHour = from h in Hours
join m in Messages on h equals m.Hour into g
orderby h ascending
select new
{
Hour = h,
Total = g.Count()
};
< /code>
und es gibt < /p>
zurück[0] { Hour = 0, Total = 33485 }
[1] { Hour = 1, Total = 0 }
[2] { Hour = 2, Total = 0 }
[3] { Hour = 3, Total = 0 }
...
[23] { Hour = 23, Total = 0 }
< /code>
Erste Daten haben die Anzahl der Gesamtzeilen und andere haben 0. Es ist falsch. < /p>
Das Ergebnis muss so sein.[0] { Hour = 0, Total = 501 }
[1] { Hour = 1, Total = 408 }
[2] { Hour = 2, Total = 181 }
[3] { Hour = 3, Total = 84 }
...
[23] { Hour = 23, Total = 1055 }
Wie kann ich meinen Code beheben?