当我只需要查询生成的行数的总数时,为什么 COUNT() 会返回多行?
应该返回 1078。
COUNT()
正在按预期工作。当您放置一个group by
子句时, 会count()
为您提供GROUP BY
. 如果您希望获取包含 的查询中的行数,group by
请将其用作子查询。
就像是:
SELECT COUNT(*) FROM (SELECT * FROM `table`
GROUP BY `column1`) AS `a`
嗯,简单的回答。GROUP BY
如果您不需要群组,请不要这样做。
如果要对组进行计数,请使用COUNT(DISTINCT articles.company)
不带GROUP BY
或保留 theGROUP BY
并将整个查询包装在 a中。SELECT COUNT(*) FROM (...) AS data
不要使用group by,它会计算每个组的数量。
将上述查询写为子查询,然后它将给出正确的结果并且不使用 group by
select count(*) from (selectarticles.id from 'contract_prices' left join 'articles' on (arcticles.id = contract_prices.article) 其中 'contract_to' >= curdate() )