Fehler „Keine Einzelgruppen-Gruppenfunktion“ in SQL verstehen
Beim Versuch, Gruppenfunktionen mit einzelnen Spaltenausdrücken in einem SELECT zu kombinieren Anweisung, wie in der bereitgestellten Abfrage:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
Möglicherweise tritt der Fehler „Keine Einzelgruppen-Gruppenfunktion“ auf. Dies liegt daran, dass die Gruppenfunktion SUM(TIME) einen einzelnen Wert für jede Gruppe (SSN) berechnet, wodurch sie mit dem SSN des einzelnen Spaltenausdrucks nicht kompatibel ist.
Um diesen Fehler zu beheben, haben Sie mehrere Möglichkeiten:
Entfernen Sie den einzelnen Spaltenausdruck:
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
Dadurch wird nur das Maximum zurückgegeben Summenwert ohne die entsprechende SSN.
Fügen Sie eine GROUP BY-Klausel für alle Spaltenausdrücke hinzu:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
Dadurch werden die Ergebnisse nach gruppiert sowohl SSN als auch TIME, wodurch die Funktion MAX(SUM(TIME)) entsteht gültig.
Verwenden Sie eine aggregierte Unterabfrage:
SELECT SSN, SUM(TIME) FROM downloads GROUP BY SSN HAVING SUM(TIME) = (SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN)
Diese Unterabfrage berechnet den maximalen Summenwert und wählt nur die Zeilen aus, in denen die SUM( ZEIT) für jede SSN entspricht diesem Maximum.
Abhängig von Ihren spezifischen Anforderungen Anforderungen erfüllen, ermöglicht Ihnen eine dieser Lösungen, die gewünschten Ergebnisse zu erzielen, ohne dass der Fehler „Keine Einzelgruppen-Gruppenfunktion“ auftritt.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Keine Einzelgruppen-Gruppenfunktion' in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!