Den häufigsten Wert für jeden Wert in einer anderen Spalte in SQL finden
Beim Arbeiten mit tabellarischen Daten ist es oft notwendig, den zu identifizieren Die am häufigsten vorkommenden Werte für eine bestimmte Spalte. Im Kontext von SQL kann dies mit einer Vielzahl von Methoden erreicht werden.
Konventioneller Ansatz:
Ein gängiger Ansatz besteht darin, eine Reihe von Zwischenschritten zu nutzen, z in der Frage gezeigt. Dazu gehört die Erstellung temporärer Tabellen, um Vorkommen zu zählen, Maximalwerte zu identifizieren und Ergebnisse entsprechend zu gruppieren. Obwohl diese Methode funktionsfähig ist, kann sie umständlich und fehleranfällig sein.
Elegante Lösung:
Moderne Versionen von SQL, wie PostgreSQL 9.4 und höher, bieten eine vereinfachte Lösung Lösungen für diese Aufgabe. Die Funktion mode() gibt den häufigsten Wert innerhalb einer angegebenen Gruppe zurück. Dadurch entfällt die Notwendigkeit einer komplexen Aggregation und Manipulation.
Beispiel:
Betrachten Sie die folgende Tabelle:
Column | Type | Modifiers |
---|---|---|
country | text | |
food_id | int | |
eaten | date |
Um das richtige Lebensmittel zu finden Für jedes Land, das am häufigsten gegessen wird, können wir die folgende Abfrage verwenden:
select mode() within group (order by food_id) from munch group by country
Diese Abfrage gibt für jedes Land direkt den Modus zurück Land, was einen einfacheren und effizienteren Ansatz ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SQL effizient den häufigsten Wert in einer Spalte für jeden eindeutigen Wert in einer anderen Spalte finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!