Výsledky 1 až 10 z 10

Téma: [MySQL]Group By a Count

  1. #1

    Standardní [MySQL]Group By a Count

    Zdravim,

    mam tabulku
    Kód:
    user    | page         |date
    1       | /index.html  | 2006-05-02 12:34:56
    1       | /zbozi.html  | 2006-10-01 12:35:56
    2       | /index.html  | 2006-10-01 12:35:56
    2       | /zbozi.html  | 2006-10-02 00:35:56
    1       | /info.html   | 2006-10-04 08:45:56
    3       | /index.html  | 2006-10-08 12:35:56
    2       | /index.html  | 2006-10-12 12:35:56
    A potreboval bych vypsat adresy stranek s poctem useru ktery k ni pristoupili.
    Na techto datech:
    /index.html --- 3
    /zbozi.html --- 2
    /info.html --- 1

    Chci aby to vypsalo pocet _ruznych_ useru, kteri stranku navstivili. To, ze user 2 byl na strance /index.html me nezajima.

    Zkousel jsem
    SELECT COUNT(user), page FROM stats GROUP BY page

    Ale to mi prave vypise ze tam byl user 2 dvakrat. "Reseni" by bylo si vypsat pro kazdyho usere na kolika ruznych strankach byl, ale to se mi nezda jako rozumne reseni.

    Dik za napady.
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  2. #2

    Standardní Re: [MySQL]Group By a Count

    Napis co chces aby bolo vysledkom lebo z hentoho ani diva svina nevie co chces.

  3. #3

    Standardní 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
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  4. #4

    Standardní 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).
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  5. #5

    Standardní Re: [MySQL]Group By a Count

    Citace Původně odeslal Rainbow Zobrazit příspěvek
    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

  6. #6

    Standardní Re: [MySQL]Group By a Count

    Kód:
    SELECT page, COUNT(DISTINCT user) FROM stats GROUP BY page;
    vidim, ze neskoro...
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  7. #7

    Standardní Re: [MySQL]Group By a Count

    Diky vam chlapi
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  8. #8

    Standardní 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;
    Lenovo Thinkpad X220 (i5 2410M, 16GB RAM, HD3000, 12,5" IPS, 1TB HDD Seagate 7mm, 120GB mSATA Crucial M4), Mini Dock Plus Ser. 3, 29" LG 29UM65 + 22" Eizo S2202W

  9. #9

    Standardní Re: [MySQL]Group By a Count

    Citace Původně odeslal zivan Zobrazit příspěvek
    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;
    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.

  10. #10

    Standardní Re: [MySQL]Group By a Count

    Ja taky nepsal, ze to moje je 100% rychlejsi a to predchozi je "pomalej sajrajt"
    Psal jsem, ze to muze otestovat. Samozrejme na poradne velke tabulce.
    Lenovo Thinkpad X220 (i5 2410M, 16GB RAM, HD3000, 12,5" IPS, 1TB HDD Seagate 7mm, 120GB mSATA Crucial M4), Mini Dock Plus Ser. 3, 29" LG 29UM65 + 22" Eizo S2202W

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. Bad secktory v oblasti FAT32
    Založil Kraki v sekci fóra Pevné disky a řadiče
    Odpovědí: 13
    Poslední příspěvek: 02.11.2006, 11:05
  2. Hodnoty S.M.A.R.T
    Založil Geeker v sekci fóra Pevné disky a řadiče
    Odpovědí: 17
    Poslední příspěvek: 07.08.2006, 14:14
  3. Sata disk závislý na Slave Pata
    Založil Camillek v sekci fóra Pevné disky a řadiče
    Odpovědí: 7
    Poslední příspěvek: 03.02.2006, 12:41
  4. Vvsledky srovnavacich testu na kartach 3Dfx
    Založil Rabban v sekci fóra Ostatní grafické karty
    Odpovědí: 21
    Poslední příspěvek: 19.07.2005, 18:28
  5. Diamond Viper II ---> Savage2000
    Založil LISP v sekci fóra Ostatní grafické karty
    Odpovědí: 43
    Poslední příspěvek: 08.08.2003, 10:59

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •