[MySQL]子语句的查询技巧
一、统计group by语句的行数
group by语句中,如果包含字段统计函数(诸如:count(),sum()...),这种情况下统计函数只会作用于group by的字段,因此想拿到最终结果的行数,只能靠返回结果后通过程序去遍历统计行数,这里有一个问题,如果被查询的结果过于庞大,这将耗费大量的系统资源,运用子查询可以解决这个问题
SELECT count(a.id) AS count FROM (SELECT id, sum(credit) AS credits FROM log_collect WHERE credit > 1 GROUP BY usage_type HAVING credits > 8900) AS a
有几点需要注意的是:
1.你必须指定一个统计字段给函数(这里是count函数,指定了a.id),不能是a.*;
2.子表必须带别名;