SQLite:没有聚合的GROUP BY

时间:2017-03-17 16:28:36

标签: php group-by sqlite2

我正在尝试理解SQLite v2.8.17

上的GROUP BY的奇怪行为

以下是代码:

<?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和GROUP函数中的每一行选择一个随机值。

结果似乎与我的理解不同。

有人可以解释一下我在这里缺少的东西吗?

1 个答案:

答案 0 :(得分:2)

这是一个错误。

这是十年前修复的; SQLite 2.8.17于2005年发布。 您应该重新考虑您选择的软件。