Ich versuche, eine MySQL-Abfrage zu finden, die verschiedene Werte in einem bestimmten Feld finden wird, die Anzahl der Vorkommen dieses Werts zählen und dann die Ergebnisse nach der Anzahl ordnen.MySQL: Zählen Auftreten von verschiedenen Werten
Beispiel db
id name
----- ------
1 Mark
2 Mike
3 Paul
4 Mike
5 Mike
6 John
7 Mark
erwartete Ergebnis
name count
----- -----
Mike 3
Mark 2
Paul 1
John 1
Dank
Was genau macht die Gruppe hier? Es ist nicht klar, was Sinn ist? Es scheint, dass es ohne es funktionieren sollte, wenn Sie gerade es einfach lesen würden. – Prospero
Während Ambers Frage die richtige Antwort für die Frage ist, möchte ich eine Korrektur an ihrem Kommentar vornehmen, um zu vermeiden, dass neue Leute in die Irre geführt werden. Wenn Sie die "Gruppierung nach" in einer MySQL-Abfrage verlassen, erhalten Sie nicht [Mike, 1], [Mike, 1], Sie erhalten ein einzelnes Ergebnis, das der Name in der ersten Zeile zurückgegeben wird, und Anzahl der Zeilen in der Tabelle, also in diesem Fall [Mark, 7]. count() agiert als Aggregatfunktion für das gesamte Dataset, wobei das angegebene Feld auf eine Zeile summiert, gezählt oder konkatiert wird. Gruppiert den Datensatz in Blöcke basierend auf eindeutigen Kombinationen der angegebenen Felder. –
@Avatar_Squadron Ganz richtig; Ich habe den vorherigen Kommentar entfernt - es war von der Spitze meines Kopfes, und ich neige dazu, die Ergebnisse der Zählung ohne Gruppe tatsächlich viel zu beobachten. :) – Amber