Autor Zpráva
Misha
Profil *
Hezký den Vám přeji.
Mám tento MySQL dotaz:
SELECT COUNT(*) FROM `foto_novinky` WHERE (`foto_novinky`.`datum`<Now() && `foto_novinky`.`fotky`=1) GROUP BY (DATE(`foto_novinky`.`datum`))

Potřebuji spočítat kolik položek v databázi odpovídá kritériím a v případě shody datumu u některých z nich je "zgroupovat".
Pokud jsem pochopil správně, tak GROUP BY nelze použít společně s COUNT(*), jenže nevím jakým způsobem přidat podmínku s datem do WHERE.
Ještě pro upřesnění, databázový sloupec "datum" je typu datetime a v podmínce potřebuji aby byly slučovány položky pouze podle data (čas není důležitý)
Kajman_
Profil *
Ten dotaz může vrátit více řádků, ale nepoznáte, které datum spočítal. Proto je dobré vypsat i to datum, podle kterého se to seskupuje.

SELECT DATE(`foto_novinky`.`datum`) dne, COUNT(*) pocet
FROM `foto_novinky`
WHERE (`foto_novinky`.`datum`<Now() && `foto_novinky`.`fotky`=1)
GROUP BY dne
Misha
Profil *
Už chápu proč mi to vypisovalo jako počet číslo 4. Protože 4 řádky byly v jednom z datumů shodné.
Tím ovšem nezjistím počet řádků celkem, ale pouze v jednom dni. To co potřebuji je abych získal počet řádků u kterých je datum starší než aktuální, ve sloupci fotky je true a datum je jedinečné. Jde to vůbec bez toho abych použil while s výpisem a připočítáváním?
Kajman_
Profil *
Aha, takže asi hledáte počet jedinečných datumů, zkusil bych
SELECT count(distinct DATE(`foto_novinky`.`datum`)) pocet
FROM `foto_novinky`
WHERE (`foto_novinky`.`datum`<Now() && `foto_novinky`.`fotky`=1)
Misha
Profil *
Perfektní, díky moc. Přesně to jsem potřeboval :)

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