Autor Zpráva
kahi
Profil
Hezký den,
potřebaval bych výjimečně vytáhnout z databáze data ve tomto duchu:

tabulka vypadá: (Př.)
ID | NAME | SCORE
1 | John | 100
2 | Mike | 80
3 | John | 150
4 | John | 130
5 | Mike | 90

Ven potřebuji dostat od každého NAME jen jeden řádek, a to ten s nejvyšším SCORE, řazeno podle score, desc. Tzn.
John, 3, 150
Mike, 5, 90

Bohužel se mi nedaří nikde najít nějakej slušnej návod ke konstrukci dotazů tohoto typu, jen tipuji že tam bude nějakej DISTINCT a GROUP BY, konkrétně to však sám nesplácám.

Děkuji prozatím mnohokrát.
Kcko
Profil
SELECT DISTINCT (NAME) , MAX(SCORE) , ID
FROM tabulka
GROUP BY NAME
ORDER BY SCORE DESC
kahi
Profil
Díky, teď jsem se pro změnu dostal před chybu v syntaxi, kterou nerozlousknu :-).

SELECT DISTINCT (user_nick), MAX (game_score)
FROM geo_highscore
WHERE ok=1 AND game_version=99
GROUP BY user_nick
ORDER BY game_score DESC
LIMIT 0, 50;

MySQL hlásí:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(game_score)
FROM geo_highscore
WHERE ok=1 AND game_version=99
GROUP BY user' at line 1

:-|
Kajman_
Profil *
http://dev.mysql.com/doc/refman/4.1/en/example-maximum-column-group-ro w.html
Toto téma je uzamčeno. Odpověď nelze zaslat.

0