SQL, max(Value), gruppiert über Zeitraum, mit zugehörigem Zeitpunkt

Oder wenn wir bei den klassischen Alternativen schauen geht es auch mit ROW_NUMBER() und Sortierung:
Code:
SELECT t.*
FROM (

SELECT ROW_NUMBER() OVER (PARTITION BY date_format(fDateTime, '%Y-%m') ORDER BY fTempAussen DESC) AS zeile,*
FROM Vantage

) t
WHERE t.zeile = 1
Bei dieser Variante und auch bei der von @BerndB wird aber z.B. immer genau ein Wert pro Intervall ausgegeben, auch wenn z.B. der max(wert) mehr als einmal am selben Tag erreicht wurde. Es gibt also logische Unterschiede und vermutlich Unterschiede in der Performance und es kommt darauf an was man eigentlich am Ende haben und damit machen will.
 
Werbung:
Werbung:
Danke an alle für ihre Zeit und danke an BerndB - exakt das war es, was ich gesucht habe.
Danke auch an ukulele für die Erläuterung des Joins anhand des interessanten Beispiels.
 
Zurück
Oben