Autor Zpráva
kvoky
Profil *
zdravim mam problem:

SELECT * 

FROM x_world
WHERE sum( population ) >2000


tohle nefunguje , pise to neco o nespravnem pouziti funkce group.

Nevím jak na to. Díky za radu
djlj
Profil
GROUPni to nejlíp sloupcem, kterej je primární nebo unikátni (úprava: to je v tomto případě blbost), například GROUP BY id .
kvoky
Profil *
to už jsem bohužel taky zkoušel...

chyba je porad stejna... SELECT sum(population) as ....

ale funguje
djlj
Profil
A co HAVING sum( population ) >2000?
Mastodont
Profil
Když chceš Sum(population), tak pro jaké skupiny chceš ty sumy vytvářet?
Béďa
Profil *
chyba je porad stejna... SELECT sum(population) as ....
pokud vím, ve where nesmí být agregační funkce, řešením je having, nebo vybrat v selectu a určit pořadím nebo aliasem
kvoky
Profil *
SELECT COUNT( * ) 

FROM x_world
HAVING sum( population ) >5000


- vypíše vše jako by tam HAVING vubec nebylo

Mastodont

Pod player_id je vice zaznamu (muzes si to predstavit tak ze kazdy player ma urcity pocet villages a kazda village nejakou population)
Béďa
Profil *
nevydím žádné group by, dotaz

SELECT COUNT( * )
FROM x_world
HAVING sum( population ) >5000


spočítá (asi) správně všechno, protože neseskupuješ, sum(population) sčítá všechny záznamy v tabulce a součet všech populaci zřejmě přesáhne 5000 a podmínka je tedy splněná
Mastodont
Profil
Tak v tom případě třeba

SELECT player_id, SUM(population) from x_world GROUP BY player_id HAVING sum(population) >2000


Prostě ve výstupu má být sloupec, podle kterého seskupuji a dál sloupec s agregační funkcí.
kvoky
Profil *
Ano, diky to by bylo ono.

Ale mam problem tohle ma jet jako poddotaz a ma z toho vylezt jeden vyraz

SELECT COUNT(DISTINCT player_id ) 

FROM x_world
GROUP BY player_id
HAVING sum( population ) >5000
LIMIT 0 , 30


mi taky nefunguje, jen to vypise x radku ktery maj hodnotu 1. A tech radku je tolik kolik potrebuju to cislo.

Nevim jak na to (popravde by mi jeste pred par hodinama prisel tenhle vyraz uplne nesmyslenej, pac sem nic z tech funkci neznal :-) )

Diky vsem
kvoky
Profil *
Neví někdo v čem je chyba ?

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