记录:mysql中的WITH ROLLUP

WITH ROLLUP 的用法


一、建表语句和数据

1.建表

CREATE TABLE `test` (
  `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `provinceName` varchar(32) DEFAULT NULL,
  `cityName` varchar(32) DEFAULT NULL,
  `countyName` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

2.数据,共9条

代码如下(示例):

INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('26', '广东省', '茂名市', '其他区');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('292', '广东省', '深圳市', '其他区');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('294', '广东省', '潮州市', '湘桥区');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('307', '广东省', '深圳市', '南山区');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('359', '广东省', '潮州市', '潮安县');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('386', '广东省', '深圳市', '福田区');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('391', '广东省', '汕尾市', '海丰县');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('397', '广东省', '汕尾市', '陆河县');
INSERT INTO `test`(`id`, `provinceName`, `cityName`, `countyName`) VALUES ('400', '山东省', '济南市', '市中区');

二、WITH ROLLUP:在group分组字段的基础上再进行统计数据。

实例,以下sql不加入WITH ROLLUP的时候,意思就是分组查询相同省、市、区的数据。

SELECT
	id,
	provinceName,
	cityName,
	countyName,
	COUNT( id ) AS num 
FROM
	test 
GROUP BY
	provinceName,
	cityName,
	countyName WITH ROLLUP;

加上WITH ROLLUP之后,由于是多字段的group up ,可以进一步统计,
1、相同省、市、区的数据
2、相同省、市的数据
3、相同省的数据
4、全部数据
这样可以非常直观的显示出各种情况的总数
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值