У меня есть довольно простая таблица в SQLite со следующей схемой:
CREATE TABLE IF NOT EXISTS Palettes
(id INTEGER PRIMARY KEY AUTOINCREMENT,
class TEXT, count INTEGER, name TEXT);
Они представляют цветовые палитры, и несколько палитр могут иметь одно и то же имя, но различное количество (то есть размеры).
Что я хочу сделать, так это найти для каждого набора именованных палитр ту, которая имеет наибольшее (или наименьшее) количество.
Моей первой мыслью было начать с:
SELECT * FROM Palettes GROUP BY name;
Но, конечно, какой ряд я получаю, произвольный. Глядя дальше, кажется, что даже если я сделаю:
SELECT MAX("count"), * FROM Palettes GROUP BY name;
Я все еще получаю произвольный ряд.
Последний выстрел:
SELECT * FROM (SELECT * FROM Palettes ORDER BY "count") GROUP BY name;
кажется, работает, но я нигде не могу найти никаких гарантий.
У кого-нибудь есть решение этой проблемы? Конечно, я могу решить это в коде, но я бы предпочел решение SQL, если это возможно.
Спасибо,
Матф