计算groupBy选择后的总记录数

Gab*_*mon 15 mysql select group-by count

我有一个具有groupBy的mysql选择查询.我想在group by语句后计算所有记录.有没有办法直接从mysql?

谢谢.

Cob*_*eDW 26

如果您唯一需要的是分组后的计数,并且您不想使用2个单独的查询来查找答案.您可以使用子查询这样做...

select count(*) as `count`
from (
    select 0 as `doesn't matter`
    from `your_table` yt
    group by yt.groupfield
) sq
Run Code Online (Sandbox Code Playgroud)

注意:您必须在子查询中实际选择一些内容,但您选择的内容无关紧要

注意:所有临时表都必须有一个命名别名,因此最后是"sq"


Fra*_*rar 10

您可以使用FOUND_ROWS():

SELECT <your_complicated_query>;
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)

它真的打算与LIMIT一起使用,告诉你在没有LIMIT的情况下返回了多少行,但它似乎对于不使用LIMIT的查询工作得很好.

  • 在`SELECT`之后不要忘记`SQL_CALC_FOUND_ROWS`. (2认同)