lib / Varien / Data / Collection / Db.phpには、すべてのMagentoコレクションに継承されるgetSelectCountSql()メソッドがあります。このメソッドでは、Selectオブジェクトが複製され、コレクションをロードせずに、代わりに軽量のSelectを使用してDBをクエリするコレクションアイテムのCOUNT値を取得するために特別に使用されるように準備されます。
準備は、選択の不要な部分とCOUNTの結果に影響を与える可能性のある部分をリセットすることによって行われます。コードは次のとおりです。
public function getSelectCountSql()
{
$this->_renderFilters();
$countSelect = clone $this->getSelect();
$countSelect->reset(Zend_Db_Select::ORDER);
$countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
$countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
$countSelect->reset(Zend_Db_Select::COLUMNS);
...
$countSelect->reset(Zend_Db_Select::GROUP);
知りたいのですが、Magentoのエンジニアが他のパーツと一緒に含めなかった本当の理由があります。
Magentoはリビジョンごとにこの問題に対処していないようで、これがバグであると確信していたので、間違っているのではないでしょうか。リセットパーツリストにグループパーツを含めない理由を誰かが説明していただければ幸いです。
PSこれはこの質問の複製ではありません。修正を追加する方法を知っています。Magentoのエンジニアが最初から修正を行わなかった理由(存在する場合)を説明し、問題を無視し続けたいと思います。