
我一般这样建表:
create table unit (uid int auto_increment,
uname varchar(32),
ulevel int,
parentid int,
PRIMARY KEY uid
)
uid是主键,自动编号,uname是省市区县乡镇的名称,ulevel为级别(可以规定省为1、市为2、……),parentid为上级id,省的上级为0,市的上级为对应的省,……
上一篇聚合函数末尾处使用了GROUP BY,但没有做具体的介绍,这一篇就主要介绍一下GROUP BY的使用方法。顺便介绍一下对分组查询的过滤关键词HAVING的用法。
在MySQL中,GROUP BY关键词可以根据一个或多个字段对查询结果进行分组,类似于Excel中的数据透视表。可以单独使用,但一般情况下都是结合聚合函数来使用的。
语法格式如下:
【单独使用GROUP BY】
单独使用GROUP BY关键字时,查询结果会只显示每个分组的第一条记录。
根据省份表里面的大区进行聚合,查询全国共分成了几个大区,SQL语句如下↓
【GROUP BY结合聚合函数】
5个聚合函数上一篇已经详细介绍了用法,GROUP BY和聚合函数结合使用也是最频繁的,下面就继续使用省份表来求每个大区有多少个省份,对应的聚合函数就是COUNT函数,SQL语句如下↓
【GROUP BY结合GROUP_CONCAT】
这还是一个很有用的功能,GROUP_CONCAT() 函数会把每个分组的字段值都合并成一行显示出来。
下面继续使用省份表,把每个大区对应的省份放在一行展示,用分号分开,SQL语句如下↓
【GROUP BY结合WITH ROLLUP】
WITH POLLUP关键词用来在所有记录的最后加上一条记录,这条记录是上面所有记录的总和,SQL语句如下↓
【GROUP BY结合HAVING】
在MySQL中,可以使用HAVING关键字对分组后的数据进行过滤。
使用 HAVING 关键字的语法格式如下:
HAVING关键词和WHERE关键词都可以用来过滤数据,且HAVING支持WHERE关键词中所有的 *** 作符和语法。但是WHERE和HAVING关键字也存在以下几点差异:
下面筛选一下省份数量在7个及以上的大区,SQL语句如下↓
【GROUP BY结合ORDER BY】
聚合后的数据,一半情况下也是需要进行排序的,通过ORDER BY对聚合查询结果进行排序,对省份数量按从大到小进行排序,SQL语句如下↓
End
◆ PowerBI开场白
◆ Python高德地图可视化
◆ Python不规则条形图
<?php return array (1 =>
array (
'province_name' =>'北京市',
'city' =>
array (
1 =>
array (
'city_name' =>'市辖区',
'area' =>
array (
1 =>'东城区',
2 =>'西城区',
3 =>'崇文区',
4 =>'宣武区',
5 =>'朝阳区',
6 =>'丰台区',
7 =>'石景山区',
8 =>'海淀区',
9 =>'门头沟区',
10 =>'房山区',
11 =>'通州区',
12 =>'顺义区',
13 =>'昌平区',
14 =>'大兴区',
15 =>'怀柔区',
16 =>'平谷区',
),
),
2 =>
array (
'city_name' =>'北京周边',
'area' =>
array (
1 =>'密云县',
2 =>'延庆县',
),
),
),
),
2 =>
array (
'province_name' =>'天津市',
'city' =>
array (
1 =>
array (
'city_name' =>'市辖区',
'area' =>
array (
1 =>'和平区',
2 =>'河东区',
3 =>'河西区',
4 =>'南开区',
5 =>'河北区',
6 =>'红桥区',
7 =>'塘沽区',
8 =>'汉沽区',
9 =>'大港区',
10 =>'东丽区',
11 =>'西青区',
12 =>'津南区',
13 =>'北辰区',
14 =>'武清区',
15 =>'宝坻区',
),
),
2 =>
array (
'city_name' =>'天津周边',
'area' =>
array (
1 =>'宁河县',
2 =>'静海县',
3 =>'蓟 县',
),
),
),
),
3 =>
array (
'province_name' =>'河北省',
'city' =>
array (
1 =>
array (
'city_name' =>'石家庄市',
'area' =>
array (
1 =>'长安区',
2 =>'桥东区',
3 =>'桥西区',
4 =>'新华区',
5 =>'井陉矿区',
6 =>'裕华区',
7 =>'井陉县',
8 =>'正定县',
9 =>'栾城县',
10 =>'行唐县',
11 =>'灵寿县',
12 =>'高邑县',
13 =>'深泽县',
14 =>'赞皇县',
15 =>'无极县',
16 =>'平山县',
17 =>'元氏县',
18 =>'赵 县',
19 =>'辛集市',
20 =>'藁城市',
21 =>'晋州市',
22 =>'新乐市',
23 =>'鹿泉市',
),
),
2 =>
array (
'city_name' =>'唐山市',
'area' =>
array (
1 =>'路南区',
2 =>'路北区',
3 =>'古冶区',
4 =>'开平区',
5 =>'丰南区',
6 =>'丰润区',
7 =>'滦 县',
8 =>'滦南县',
9 =>'乐亭县',
10 =>'迁西县',
11 =>'玉田县',
12 =>'唐海县',
13 =>'遵化市',
14 =>'迁安市',
),
),
3 =>
array (
'city_name' =>'秦皇岛市',
'area' =>
array (
1 =>'海港区',
2 =>'山海关区',
3 =>'北戴河区',
4 =>'青龙满族自治县',
5 =>'昌黎县',
6 =>'抚宁县',
7 =>'卢龙县',
),
),
4 =>
array (
'city_name' =>'邯郸市',
'area' =>
array (
1 =>'邯山区',
2 =>'丛台区',
3 =>'复兴区',
4 =>'峰峰矿区',
5 =>'邯郸县',
6 =>'临漳县',
7 =>'成安县',
8 =>'大名县',
9 =>'涉 县',
10 =>'磁 县',
11 =>'肥乡县',
12 =>'永年县',
13 =>'邱 县',
14 =>'鸡泽县',
15 =>'广平县',
16 =>'馆陶县',
17 =>'魏 县',
18 =>'曲周县',
19 =>'武安市',
),
),
5 =>
array (
'city_name' =>'邢台市',
'area' =>
array (
1 =>'桥东区',
2 =>'桥西区',
3 =>'邢台县',
4 =>'临城县',
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)