J'ai une table assez simple dans SQLite, avec le schéma suivant:Trouver des lignes avec le maximum
CREATE TABLE IF NOT EXISTS Palettes
(id INTEGER PRIMARY KEY AUTOINCREMENT,
class TEXT, count INTEGER, name TEXT);
Ceux-ci représentent des palettes de couleurs, et plusieurs palettes peuvent avoir le même nom, mais un nombre différent (c.-à-tailles) .
Ce que je veux faire est de trouver, pour chaque ensemble de palettes nommées, celui qui a le plus grand nombre (ou le moins) nombre.
Ma première pensée a été de commencer par:
SELECT * FROM Palettes GROUP BY name;
Mais, bien sûr, quelle ligne je reçois est arbitraire. En regardant plus loin, il semble que même si je le fais:
SELECT MAX("count"), * FROM Palettes GROUP BY name;
Je reçois toujours une ligne arbitraire. Un dernier coup:
SELECT * FROM (SELECT * FROM Palettes ORDER BY "count") GROUP BY name;
semble travailler, mais je ne peux pas trouver aucune garantie partout.
Est-ce que quelqu'un a une solution à ce problème? Je peux, bien sûr, le résoudre en code, mais je préférerais une solution SQL, si possible.
Merci, -Matt
J'ai ajouté la balise 'most-n-per-group'. Cliquez sur cette étiquette pour voir la réponse dans l'une des dizaines d'autres questions ici sur SO. –
Merci de m'avoir indiqué dans la bonne direction - j'ai regardé, mais je suis à peine une ceinture orange à SQL-fu, donc je n'ai pas eu mes termes de recherche à droite. – Gretchen