Autor Zpráva
I.P.Freely
Profil *
Zdravím,
mám následující tabulku:

id nick cislo loc
1 aaa 55 hospoda
2 aaa 66 stan
3 ccc 666 dům
4 ccc 777 věž
5 ccc 555 dům


A potřebuji udělat dotaz, který mi sečte počet výskytů duplikátních nicků a zároveň vrátí řádek s největším id.. tedy výsledek by vypadal nějak takto:

nick: aaa
výskyty: 2
číslo: 66
loc: stan

nick: ccc
výskyty: 3
číslo: 777
loc: věž



Můj momentální dotaz vypadá následovně

SELECT COUNT(*) as vyskyty, id, nick, cislo, loc GROUP BY nick ORDER BY id DESC


Bohužel to vypadá že mysql nejdřív provede group by a až pak záznamy seřadí, takže mi z group by vyleze špatný řádek, tedy ne ten s největším id pro daný nick...

Jde to nějak vyřešit bez použití žrouta výkonu subquery?

děkuji za rady
Hmmmm
Profil
Zkus:
SELECT COUNT(*) as vyskyty, MAX(id) as max_id, id, nick, cislo, loc GROUP BY nick ORDER BY id DESC
I.P.Freely
Profil *
MAX jsem použít zkoušel, ale to mi vrátí pouze největší hodnotu u toho sloupce na který ho použiju, ostatní sloupce zůstanou stejné
Kajman_
Profil *
Viz. 3. příklad ve faq.

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: