Autor Zpráva
wabi
Profil *
Ahoj,
mám takový problém, potřebuji, aby se mi spočítal průměr z nějaké množiny záznamů (se sloupcem pro datum), ale zvlášť pro každý den. To je ještě v pohodě, ale problém mi nastává, jelikož potřebuji, aby se mi vypsal samostatný řádek s hodnotou 0 i pro ty dny, ve kterých není žádný záznam uložen. Tyhle dny se mi ve výpisu zkrátka přeskakují a já potřebuji aby tam byly. Zde je dotaz, který aktuálně používám:
SELECT datum, AVG(data) FROM tabulka WHERE datum BETWEEN '2011-9-22' AND '2011-9-30' GROUP BY datum ORDER BY id;
+------------+---------------+
| datum      | AVG(data) |
+------------+---------------+
| 2011-09-24 |        2.3352 |
| 2011-09-25 |        2.5714 |
| 2011-09-26 |        2.5714 |
| 2011-09-28 |        2.5714 |
| 2011-09-30 |        2.4375 |
+------------+---------------+


Jak je vidět, dnů potřebuji vypsat 8, ale jelikož pro některé neexistují žádné záznamy, nevýpíší se vůbec. Věděl by někdo jak tento dotaz upravit?
Předem díky!
Tori
Profil
wabi:
Nechala bych to na skript, který ta data zobrazuje - bude zkoušet jednotlivé dni, jestli k nim existují data z DB, a když ne, tak zobrazí nulu.
Koukněte na vlákno jak na casovy graf - pocet objednavek, tam se řešil obdobný problém.
Kajman_
Profil *
wabi:
Další možností je vytvoření tabulky s kalendářem, kdy budete mít předvyplněné všechny dny v intervalu, který je pro Vás zajímavý (nebo tam můžete každý rok přidávat kalendář na další rok). S pomocí takové tabulky by to již šlo.
wabi
Profil *
S kalendářem chápu myšlenku, ale je to pro mé účely asi zbytečně "složité". Asi to udělám jak píše Tori.

Děkuji za rady!

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