with rollup的用法
with rollup
Mysql中有一个with rollup是用来在分组统计数据的基础上再进行统计汇总,即用来得到group by的汇总信息;
表中数据有:没有with rollup的查询
没有with rollup的查询
SELECT COALESCE (b.name, '总数') 'name', COUNT(b.name) 'cnt' from device a LEFT JOIN device_type b on a.type_id = b.id where a.del_flag=0 GROUP BY b.name
有with rollup的查询语句:
SELECT COALESCE (b.name, '总数') 'name', COUNT(b.name) 'cnt' from device a LEFT JOIN device_type b on a.type_id = b.id where a.del_flag=0 GROUP BY b.name WITH ROLLUP
需要注意的是,使用有 WITH ROLLUP 子句的 GROUP BY 语句时,不能再使用 ORDER BY
语句对结果集进行排序,如果对返回的结果顺序不满意,需要应用程序获得结果后在程序中进行排序。