Autor | Zpráva | ||
---|---|---|---|
Misha Profil * |
#1 · Zasláno: 10. 11. 2010, 12:47:35
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 * |
#2 · Zasláno: 10. 11. 2010, 14:00:25
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 * |
#3 · Zasláno: 10. 11. 2010, 14:16:42
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 * |
#4 · Zasláno: 10. 11. 2010, 14:24:41
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 * |
#5 · Zasláno: 10. 11. 2010, 14:37:07
Perfektní, díky moc. Přesně to jsem potřeboval :)
|
||
Časová prodleva: 15 let
|
0