Рассмотрим следующую таблицу:
CREATE TABLE t
(
a INTEGER NOT NULL,
b INTEGER NOT NULL,
c INTEGER,
PRIMARY KEY (a, b)
)
Теперь, если я сделаю это:
SELECT a,b,c FROM t GROUP BY a;
Я ожидаю получить каждое отдельное значение только один раз.Но так как я спрашиваю также о b и c, это даст мне строку для каждого значения a.Поэтому, если для одного значения a есть много строк на выбор, как я могу предсказать, какую строку выберет SQL?Мои тесты показывают, что он выбирает вернуть строку, для которой b является наибольшим.Но какова логика в этом?Как это применимо к строкам больших двоичных объектов, датам или чему-либо еще?
Мой вопрос: Как SQL выбирает, какую строку отображать при группировании нескольких строк?
Кстати: моя особая проблема касается SQLITE3, но я предполагаю, что это проблема SQL, не зависящая от СУБД ...