Autor Zpráva
w4c
Profil *
Zdravím, 
pořeboval bych pomoci s následujícím problémem. Mám DB (MYSQL) a v ní jsou dvě tabulky:

1) locations
2) temperatures

Tabulky vypadají takto:

-----------------------
 ID    name
-----------------------
 1    Praha
 2    Brno
 3    Ostrava
 4    Plzeň
 5    Pardubice
 6    Liberec
------------------------

---------------------------------------------------------
 ID    tempc    humidity locationId Inserted    
---------------------------------------------------------
 1    10.00     86       1         2022-04-06 11:45:00
 2     9.90     84       2         2022-04-06 12:00:00
 3    10.00     84       3         2022-04-06 12:15:00
 4     9.20     73       4         2022-04-06 12:30:00
 5    10.10     84       5         2022-04-06 12:30:00
...
10000 ...
---------------------------------------------------------

chtěl bych vypsat průměrnou teplotu v jednotlivých dnech za každou destinaci.
Napsal jsem si dotaz, který mi to vypíše po dnech a destinacích

SELECT locations.name AS Locations, 
       AVG(temperatures.tempc) AS Temp,
       DATE(temperatures.inserted) AS Days
FROM temperatures
INNER JOIN locations ON locations.ID = temperatures.locationId
GROUP BY locations.name, DATE(temperatures.inserted)

Já bych ale potřeboval, aby vypadal výpis takto:

--------------------------------------------------------------------------
Day           Praha   Brno   Ostrava   Plzeň   Pardubice   Liberec 
--------------------------------------------------------------------------
2022-04-06    11.5    12       11.6     12.1     12.1         9
2022-04-07    12.1    12.5     12.6     13.2     13.5         8.5 
2202-04-08    11.7    11.3     11.8     12.3     13.2        10.2

Neumím převést řádky do sloupců.
Je něco takového možné?
Díky
Kajman
Profil
Přímo v sql ne. Tabulku si vytvořte v aplikaci, např. v php. Data z řádků si dáte do paměti (pole) a cyklem jednotlivých měst a datumů si vyzobnete z paměti teplotu.

Dotaz by šel, jen pokud se města nemění a znáte je před sestavením dotazu.
w4c
Profil *
Kajman:
Díky, ale potřeboval bych dostat přímo z dozazu. Výsledek bych potřeboval vizualizovat v Grafaně.

Města před sestavením znám, zkoušel jsem použít klauzuli CASE WHEN location.name = "Praha" THEN ...) AS Praha,
ale asi jsem to nepochopil správně.
Keeehi
Profil
w4c:
Většinou stačí IF ale CASE jde taky použít. Uvažuješ o tom správně. Jen tam máš asi nějakou drobnou chybu.

www.artfulsoftware.com/infotree/qrytip.php?id=78
Kajman
Profil
w4c:
A proč si data netransformujete na sloupečky přímo v Grafaně? Měla by to umět.
w4c
Profil *
Pánové, díky za pomoc, už to mám.

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