问题描述:
获取各个省市的统计信息
,如 浙江省,则需要获取省市区的所有统计信息,如浙江省+浙江省下所有的市+浙江省下所有的市下的所有区
杭州市,则需要获取杭州市+杭州市下所有区的统计信息
滨江区,则获取滨江区的统计信息,
思路:获取所有的省市区的信息 + 省的统计数据+市的统计数据,做关联查询,因为设定省市区的为模式为下划线_ 如 浙江省_宁波市_北仑区
所有判断下划线的个数来读取哪个统计数量
实例代码如下
浙江省_宁波市_北仑区
SELECT c2.city ,
case CHAR_LENGTH(c2.city)-CHAR_LENGTH(REPLACE(c2.city,'_',''))
when 0 THEN c1.amount
when 1 THEN c3.amount
when 2 then c2.amount else '' end amount
from
(
select count(0) amount, '浙江省' city
from fm_sample s
where s.data_status=0
) c1
right JOIN
(
select
(select u.precinct_name from sys_unit u where u.id=s.sample_audit_unit_id) city,
count(0) amount
from fm_sample s
where s.data_status=0
GROUP BY city
) c2 on c1.city=c2.city
LEFT JOIN
(
select
(select back_province_city_func(u.precinct_name) from sys_unit u where u.id=s.sample_audit_unit_id) city,
count(0) amount
from fm_sample s
where s.data_status=0
GROUP BY city
) c3 on c2.city=c3.city