mysql - 请问如何统计group by 后的结果
天蓬老师
天蓬老师 2017-04-17 15:30:15
[MySQL讨论组]

比如这条语句可以统计查询总数

SELECT COUNT(`id`) AS `num` FROM `test`;

那如果加了一句group by 之后就不对了

SELECT COUNT(`id`) AS `num` FROM `test` GROUP BY `id`;

请问我想要知道GROUP BY出来有多少行数据,怎么做

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
伊谢尔伦

统计GROUP BY后的数据行数:

SELECT count(1) FROM (
    SELECT * FROM `test` GROUP BY `id`
) AS tmp;

统计id相同出现的次数:

SELECT id, count(1) FROM `test` GROUP BY `id`;

统计GROUP BY后的数据总和:

SELECT sum(c) FROM (
    SELECT count(1) AS c FROM `test` GROUP BY `id`
) AS tmp;

不清楚你想要查什么,但猜测是第一条SQL。

怪我咯

SELECT id,COUNT(id) AS num FROM test GROUP BY id;

高洛峰

楼主正解,思路就是先把查找到的结果放在一张“临时表”,然后再统计总数

巴扎黑

楼上正解,题主可参考

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号