Re: [MySQL]Group By a Count
Napis co chces aby bolo vysledkom lebo z hentoho ani diva svina nevie co chces.
Re: [MySQL]Group By a Count
Ak som to pochopil, tak by toto mohlo fungovat:
Kód:
SELECT page, COUNT(1) FROM stats GROUP BY page
Re: [MySQL]Group By a Count
Jeste jednou muj problem:
z te tabulky, kterou mam v prvnim postu, potrebuju vytahnout statistiku navstevnosti webu. Vysledkem bude seznam navstivenych URL (sloupec page) + pocet useru kteri tuto stranku navstivili. Ovsem nechci pocitat usera dvakrat, pokud na ni user dvakrat pristoupil(tzn ze jsou v tabulce dva radky, ktere si lisi jen v datumu pristupu).
Takze z te tabulky viz vyse chci dostat takovyto vystup:
Kód:
page | count_of_users
/index.html | 3
/zbozi.html | 2
/info.html | 1
Zkousel jsem ten SQL dotaz co psal Rainbow, ovsem ten prave dela to, ze ve vysledku u /index.html vypise count_of_users roven 4. Coz je prave nechtene chovani(user 2 na /index.html pristoupil dvakrat).
Re: [MySQL]Group By a Count
Citace:
Původně odeslal
Rainbow
Ak som to pochopil, tak by toto mohlo fungovat:
Kód:
SELECT page, COUNT(1) FROM stats GROUP BY page
Kód:
SELECT page, COUNT(distinct user) FROM stats GROUP BY page
Re: [MySQL]Group By a Count
Kód:
SELECT page, COUNT(DISTINCT user) FROM stats GROUP BY page;
vidim, ze neskoro...
Re: [MySQL]Group By a Count
Re: [MySQL]Group By a Count
Nasel jsem informaci, ze COUNT(DISTINCT user) je dost pomale (http://dev.mysql.com/doc/refman/5.0/...mization.html), tak muzes otestovat toto:
SELECT page, COUNT(user) FROM (SELECT DISTINCT user, page FROM temp) as temp2 GROUP BY page;
Re: [MySQL]Group By a Count
Citace:
Původně odeslal
zivan
Zalezi v akom dotaze to pouzijes. Z tojho dotazu vyplyvaju dve veci:
1. (SELECT DISTINCT user, page FROM temp) robi full scan tabulky temp a uklada si vysledok niekam do pamete
2. SELECT page, COUNT(user) FROM (SELECT DISTINCT user, page FROM temp) as temp2 GROUP BY page robi dalsi full san tabulky nad tabulkou ulozenou v pameti. Cize v konecnom dosledku robis 2 fullscany miesto jednoho. Nehovoriac o tom ze subselecty nie su podporovane vo vsetkych verziach mysql. Ano distinct je pomaly resp count(distinct user) je pomalsi ako count(*), ale osobne si myslim, ze moznost ktoru sme ponukli bude rychlejsia ako tvoj selekt.
Re: [MySQL]Group By a Count
Ja taky nepsal, ze to moje je 100% rychlejsi a to predchozi je "pomalej sajrajt" :-D
Psal jsem, ze to muze otestovat. Samozrejme na poradne velke tabulce.