Autor Zpráva
martinix06
Profil
Dobrý den. Jde o MySQL...
Prosím o radu. Mám tabulku jts_vysledky a v ní sloupce vysledky_id, vysledky_hrac, vysledky_turnaj, vysledky_rocnik, rany...

Potřebuji zobrazit součet ran pro jednotliveho hráče (každý musí být uveden jen jednou a jemu se sečtou rány za min. počet turnajů), kde bude podmínka, aby měl určitý počet řádků větších než 0 (například minimálně 3).

Základní dotaz vypadá asi takto:
select sum(rany) as vysl_rany, vysledky_hrac as vysl_cgf, vysledky_turnaj as vysl_turnaj 
      from jts_vysledky
      where vysledky_rocnik=".$_GET["year"]."
      group by vysl_cgf
      order by vysl_rany ASC

Mohu požádat o pomoc, jak doplnit dotaz, který by limitoval sum(rany) pro každé vysl_cgf na ten počet min. 3 a větších než 0?
Díky...
Kajman
Profil
Mysql na to není zrovna ideální. V pogstresql nebo oracle by to šlo lépe.

Možná to půjde přibližně takto
Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení posledních pěti článků z každé kategorie
jen se to komplikuje s tím, že rany nejsou jedinečné.

Tady se to také řeší
http://stackoverflow.com/questions/6799923/how-do-i-get-the-sum-of-each-persons-best-ten-scores-of-the-season
a také některá řešení nebudou fungovat.
martinix06
Profil
Kajman:
Jj, já to chápu, jen to tedy asi budu muset vyřešit nějakou dočasnou tabulkou, kam si nasypu pro každého hráče tři nejnižší rány a pak udělám select jen na seřazení podle sum(). Tak by to mohlo fungovat ne? Akorát to bude opět náročné na dotazy, ale na rychlosti až tolik nezáleží, takže předpokládám, že by to mohlo být řešení, co myslíte? Navíc mi server jede na linuxu a mysql a jinak to nejde...

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