Autor | Zpráva | ||
---|---|---|---|
Fanda Profil * |
#1 · Zasláno: 1. 2. 2008, 15:55:18
Potřeboval bych poradit, jak dostat maximální hodnotu z count(). Konkrétně se jedná o SQL dotaz, který by měl zobrazit nejčastější výsledek zápasu tedy maximální hodnotu z tohoto dotazu:
SELECT count( id_zapas ) AS pocet_zapasu, goly_domaci, goly_hoste FROM tip_zapas WHERE id_kola IN ( SELECT id_kola FROM tip_kola WHERE id_sezony = '1') GROUP BY goly_domaci, goly_hoste V mysql manuálu jsem našel podobný řešený příklad, ale ne a ne to na něj naroubovat |
||
Joker Profil |
#2 · Zasláno: 1. 2. 2008, 16:02:24
SELECT count( id_zapas ) AS pocet_zapasu, goly_domaci, goly_hoste
FROM tip_zapas WHERE id_kola IN ( SELECT id_kola FROM tip_kola WHERE id_sezony = '1') GROUP BY goly_domaci, goly_hoste ...ORDER BY pocet_zapasu DESC LIMIT 1? |
||
Fanda Profil * |
#3 · Zasláno: 1. 2. 2008, 17:03:45
...ORDER BY pocet_zapasu DESC LIMIT 1 bych nerad používal, protože bych tím nepodchytil situaci, kdy si budou dva nejčastější výsledky rovny.
|
||
djlj Profil |
#4 · Zasláno: 1. 2. 2008, 17:14:45 · Upravil/a: djlj
Fanda
Tak LIMIT 2. Nenapsals, co chceš aby se stalo, když budou dva různé výsledky stejně často. |
||
Fanda Profil * |
#5 · Zasláno: 1. 2. 2008, 17:24:46
Asi si nerozumíme nebo jsem se špatně vyjádřil: Jde mi o to vypsat nejčastěji se opakující výsledek. Pokud tuto podmínku splní více výsledků, pak je chci vypsat.
Použiju-li LIMIT 1 - nevím jistě zda jiný výsledek se neopakuje stejně často. Použiju-li LIMIT 2 - budu velmi často vypisovat druhý výsledek zbytečně, protože nebude nejčastěji se opakující. |
||
Kajman_ Profil * |
#6 · Zasláno: 1. 2. 2008, 17:52:12
možná něco jako...
SELECT count( id_zapas ) AS pocet_zapasu, goly_domaci, goly_hoste FROM tip_zapas WHERE id_kola IN ( SELECT id_kola FROM tip_kola WHERE id_sezony = '1') GROUP BY goly_domaci, goly_hoste having pocet_zapasu = (select max(pocet_zapasu) from (SELECT count( id_zapas ) AS pocet_zapasu, goly_domaci, goly_hoste FROM tip_zapas WHERE id_kola IN ( SELECT id_kola FROM tip_kola WHERE id_sezony = '1') GROUP BY goly_domaci, goly_hoste) s) |
||
Joker Profil |
#7 · Zasláno: 1. 2. 2008, 19:29:26
Fanda
Jde mi o to vypsat nejčastěji se opakující výsledek. Pokud tuto podmínku splní více výsledků, pak je chci vypsat. Tak potom bez limitu... ORDER BY pocet_zapasu DESC A ve skriptu vypisovat tak dlouho, dokud není hodnota menší. Kajman_ Nebude ale výhodnější to řešit ve skriptu, než dva dotazy navíc? (Nevím, ptám se) |
||
Časová prodleva: 16 let
|
0