Maximalwert einer Aggregatfunktion anzeigen lassen(MySQL)

tklustig

Erfahrenes Mitglied
Hallo Leute,
folgendes Query liefert mir alle Temperaturwerte in meiner Datenbank mit der absoluten Häufigkeit:
SQL:
SELECT CONCAT('Temperaturwerte/Celsius'),CONCAT('absolute Häufigkeit') FROM DUAL UNION

SELECT Temperatur_Celsius AS Grad,COUNT(id)
FROM temperaturs
GROUP BY Grad
HAVING COUNT(Grad) >=1

Wie lautet das Query, welches mir aus obigen Werten den Maximalwert anzeigt. Ich versuche es mit einem SUBSELECT, scheiter aber damit:
SQL:
SELECT CONCAT('Temperatur mit dem häufigsten Meßwert'),CONCAT('Anzahl') FROM DUAL UNION
SELECT Temperatur_Celsius AS Grad, COUNT(id) AS anzahl
FROM temperaturs
GROUP BY Grad
HAVING COUNT(Grad) >=1
WHERE anzahl IN
(
SELECT MAX(anzahl) FROM temperaturs
)
 
Hallo,

kann es sein, dass wir hier von einer oracle und nicht von einer MYsql-DB sprechen? DUAL kenne ich nur in Zusammenhang mit Oracle. Du bist zwar schon richtig mit MAX, jedoch hast du es an der falschen Stelle verwendet.

SQL:
SELECT CONCAT('Temperaturwerte/Celsius'),CONCAT('absolute Häufigkeit') FROM DUAL UNION

SELECT MAX(Temperatur_Celsius) AS Grad,COUNT(id)
FROM temperaturs
GROUP BY Grad
HAVING COUNT(Grad) >=1
 
Wenn ich es recht verstanden habe will er die Temperatur, welche am häufigsten vorkommt, nicht die höchste Temperatur

Eher was in der Art (ungetestet):
SQL:
SELECT Grad, Max(Anzahl) FROM
(SELECT Temperatur_Celsius AS Grad, COUNT(id) AS anzahl
FROM temperaturs
GROUP BY Grad
HAVING COUNT(Grad) >=1)
GROUP BY Grad

EDIT: Variante 2:
In der ursprünglichen Abfrage ORDER BY Anzahl DESC, und dann LIMIT 1 (oder FETCH FIRST 1 ROW ONLY oder wie auch immer es in deinem DBMS heisst, nur den ersten Satz zurückzugeben)
 
Zuletzt bearbeitet:
Zurück