我试图理解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或者聚合函数中的每一行选择一个随机值.
结果似乎与我的理解不同.
谁能解释一下我在这里缺少的东西?
最佳答案 这是一个错误.
这是十年前修复的; SQLite 2.8.17于2005年发布.
您应该重新考虑您选择的软件.