Trebalo bi da može i ovako:
Kôd:
SELECT * FROM
(SELECT * FROM yesno
ORDER BY group_id ASC, flag DESC) tmp
GROUP BY group_id
Koliko sam ja primetio, kada radiš GROUP BY po
group_id polju, a
flag sadrži različite vrednosti, u rezultatu će se za flag uzeti prva vrednost. Zbog toga je potrebno prvo sortirati tabelu prvenstveno po
group_id, a zatim po
flag da bi yes za svaku grupu bio na prvom mestu(ako ga ima).