Autor Zpráva
MaK
Profil
Mám tabulku:

tab(ridic, auto, pocet_jizd)

Řidiči auta střídali, takže tabulka vypadá asi takhle:
Karel, ford, 5
Karel, bmw, 3
Karel, skoda, 2
Ivan, trabant, 1

Potřebuju vybrat z tabulky všechny řidiče a ke každému z nich auto, se kterým jel nejčastěji.
juriad
Profil
Diskuse JPW: Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení řádků s maximální (minimální) hodnotou
Chceš tu třetí variantu; kategorie = řidič.
MaK
Profil
juriad:
Děkuju!
Dusann
Profil
Požadované query je možné zapísať aj cez row constructor:

SELECT
    ridic, `auto`, pocet_jizd 
FROM 
    tab 
WHERE 
    (ridic, pocet_jizd) IN (SELECT ridic, MAX(pocet_jizd) FROM tab GROUP BY ridic);

Inak tá tabuľka nepoužíva efektívny dátový model - pri tomto type dát je typické používať spojovaciu tabuľku pre "ridic" a "auto".

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:

0