Autor Zpráva
CRSSo
Profil *
Ahoj,
ukládám do mySQL z meteostanice data a rád bych vypsal za dnešní den min a max hodnoty včetně časů. Lze to řešit jedním mySQL dotazem nebo musím jednotlivě? Chci vypsat teplotu, vlhkost, tlak, apod.

Hrozně moc děkuji.
Kajman
Profil
Jakou verzi mysql máte? Jaká je struktura tabulky?
CRSSo
Profil *
Verze MySQL: 5.5.5-10.3.27-MariaDB-log

id
teplota
vlhkost
tlak
timestamp (datetime)
Kajman
Profil
Z té dvojité verze mi není jasná podpora analytických dotazů. Tento dotaz funguje?
SELECT Row_number() OVER() rownumer FROM dual
CRSSo
Profil *
rownumer = 1 to vypsalo. Žádná chyba.
Kajman
Profil
Tak bych zkusil něco takového

SELECT m.*
FROM   (
                SELECT   t.* ,
                         Rank() OVER (ORDER BY teplota)      teplota_min,
                         Rank() OVER (ORDER BY teplota DESC) teplota_max,
                         Rank() OVER (ORDER BY vlhkost)      vlhkost_min,
                         Rank() OVER (ORDER BY vlhkost DESC) vlhkost_max,
                         Rank() OVER (ORDER BY tlak)         tlak_min,
                         Rank() OVER (ORDER BY tlak DESC)    tlak_max
                FROM     meteostanice t
                WHERE    t.timestamp >= Date('2023-01-04')
                AND      t.timestamp < Adddate(Date('2023-01-04'), INTERVAL 1 DAY)) m
WHERE  1 IN (m.teplota_min,
             m.teplota_max,
             m.vlhkost_min,
             m.vlhkost_max,
             m.tlak_min,
             m.tlak_max) 

Pokud bude více hraničních hodnot, budou tam všechny hraniční řádky. Pokud by tam měl být jen jakýkoliv z nich, můžete použít Row_number místo Rank.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0