SQLite: GROUP BY без агрегата

Я пытаюсь понять странное поведение GROUP BY на SQLite v2.8.17

Вот код:

<?php
$selectMaxQuery = $this->_db->prepare('SELECT COUNT(*) AS c FROM (SELECT MAX(groupCode) FROM docs GROUP BY groupCode)');
$selectQuery = $this->_db->prepare('   SELECT COUNT(*) AS c FROM (SELECT     groupCode  FROM docs GROUP BY groupCode)');
$selectMaxQuery->exec();
$selectQuery->exec();
var_dump($selectMaxQuery->fetch()->c, $selectQuery->fetch()->c);

Вот результат:

string(3) "614"string(3) "797"

Везде, где я захожу в Интернет, говорится, что поведение GROUP BY состоит в объединении нескольких строк в одну. Без использования агрегатной функции она должна выдавать ошибку или выбирать случайное значение для каждой строки, которая не находится ни в GROUP BY, ни в агрегатной функции.

Результат, кажется, отличается от того, что я понимаю.

Может кто-нибудь объяснить мне, что мне здесь не хватает?

4

Решение

Это ошибка.

Который был исправлен более десяти лет назад; SQLite 2.8.17 был выпущен в 2005 году.
Вы должны пересмотреть свой выбор программного обеспечения.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]