Autor | Zpráva | ||
---|---|---|---|
FireFox Profil * |
#1 · Zasláno: 22. 11. 2013, 15:56:56
Ahoj,
nevíte prosím někdo jak říct příkazu GROUP BY, který řádek si má vybrat? Příklad: user_key id_clanku body 1a 1 44 2b 2 67 1a 4 34 1a 1 120 3d 14 12 Když teď provedu dotaz: SELECT `user_key`,`body, COUNT(*) as pocet_stejnych_clanku ` FROM `tahle_tabulka` GROUP BY `user_key`, `id_clanku` Vypíše mi něco jako: 1a 44 2 1a 34 1 2b 67 1 3d 14 1 Což je skoro přesně to co potřebuju, jen bych nějak potřeboval říct tomu GOUP BY, že má vždycky vzít tu největší hodnotu z bodů. Vím, že je to hrozně zmatený, ale ono to moc líp vysvětlit nejde, snažím se o vytvoření žebříčků a tohle je jedna z věcí na kterých jsem se zarazil. Předem díky za odpovědi :) |
||
juriad Profil |
#2 · Zasláno: 22. 11. 2013, 16:10:30
V tomto případě ti stačí funkce MAX.
SELECT user_key, COUNT(*) AS pocet, MAX(body) AS maximum FROM tabulka GROUP BY user_key, id_clanku Mimochodem, podle ANSI SQL (pokud je použito GROUP BY) smí být výsledkem dotazu jen sloupec uvedený v GROUP BY a výsledek agregační funkce aplikované na nějaký sloupec. Nesmíš tedy chtít body, ale můžeš chtít MAX(body). (Hodně zhruba řečeno.) Ono to v MySQL projde, ale MsSQL už myslím ne. MySQL v takovém případě vrací myslím první řádek, na který narazí. |
||
Časová prodleva: 10 let
|
0