SQL 如何提取多级分类目录

前言

POI数据处理,原始数据为csv格式,整理入库至PostGreSQL,本例使用PostGreSQL13版本。

一、POI

POI(一般作为Point of Interest的缩写,也有Point of Information的说法),通常称作兴趣点,泛指互联网电子地图中的点类数据,基本包含名称、地址、坐标、类别四个属性;源于基础测绘成果DLG(Digital Line Graphic,数字线划地图)产品中点类地图要素矢量数据集;在GIS(Geographic Information System,地理信息系统)中指可以抽象成点进行管理、分析和计算的对象。

二、数据介绍

样例数据

现有全国POI数据8000多万条数据,如下图

分类提取

现要提取一二级分类目录,SQL语句如下:

sql 复制代码
select type1 ,type2 from china_poi.china_poi_v2 group by type1,type2 order by type1,type2 ;

查询结果如下所示:


优化SQL语句

查询全表数据,效率很低,增加WHERE pcode = 110000(北京市),以便提高效率

sql 复制代码
-- 查询全表数据,效率很低,增加WHERE pcode = 110000(北京市),以便提高效率
select type1 ,type2 from china_poi.china_poi_v2 WHERE pcode = 110000 group by type1,type2 order by type1,type2 ;

提取结果至另一张表

将以上查询结果保存至china_poi.tb_ClassInfo表中,对应SQL语句如下:

sql 复制代码
SELECT * into china_poi.tb_ClassInfo FROM (select type1 ,type2 from china_poi.china_poi_v2 WHERE pcode = 110000 group by type1,type2 order by type1,type2 ) as t1;

结果

china_poi.tb_ClassInfo表中数据如下

相关推荐
是码龙不是码农10 分钟前
MySQL 锁的完整分类与详解
数据库·mysql·
..过云雨16 分钟前
【MySQL】3. MySQL库的操作
数据库·mysql
wregjru19 分钟前
【操作系统】12.Linux 多线程同步与互斥详解
数据库·mysql
小李独爱秋21 分钟前
模拟面试:简述一下MySQL数据库的备份方式。
数据库·mysql·面试·职场和发展·数据备份
難釋懷1 小时前
Redis消息队列-基于Stream的消息队列-消费者组
数据库·redis·缓存
四七伵1 小时前
数据库必修课:MySQL金额字段用decimal还是bigint?
数据库·后端
diaya2 小时前
麒麟V10 x86系统安装mysql
数据库·mysql
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-02-24
大数据·数据库·人工智能·经验分享·搜索引擎
QEasyCloud20223 小时前
WooCommerce 独立站系统集成技术方案
java·前端·数据库
数据知道3 小时前
MongoDB 数组查询专项:`$all`、`$elemMatch` 与精确匹配数组的使用场景
数据库·mongodb