1. 分组统计
根据 h3_index
进行分组统计,计算分组内order_id
的数量,并将列名重命名为cha_cnt
;计算分组内total_power
的总和,并将列名重命名为cha_power
;对分组内的vid
进行去重,并统计去重后分组内vid
的数量,并将列名重命名为ev_cnt
。
select h3_index, count(order_id) as cha_cnt, sum(total_power) as cha_power, count(distinct vid) as ev_cnt
from data_charge
group by h3_index;
将查询结果保存到已经创建好的数据表data_charge_1
中。
insert into data_charge_1
select h3_index, count(order_id) as cha_cnt, sum(total_power) as cha_power, count(distinct vid) as ev_cnt
from data_charge
group by h3_index;
行转列
根据h3_index
进行分组统计,将列cat1
中的数据作为列名(就是下面这些文字部分),然后统计每个分组内这些特征的数量。
select
h3_index,
sum(case when cat1='汽车服务' then 1 else 0 end) '汽车服务',
sum(case when cat1='购物服务' then 1 else 0 end) '购物服务',
sum(case when cat1='商务住宅' then 1 else 0 end) '商务住宅',
sum(case when cat1='生活服务' then 1 else 0 end) '生活服务',
sum(case when cat1='医疗保健服务' then 1 else 0 end) '医疗保健服务',
sum(case when cat1='风景名胜' then 1 else 0 end) '风景名胜',
sum(case when cat1='政府机构及社会团体' then 1 else 0 end) '政府机构及社会团体',
sum(case when cat1='交通设施服务' then 1 else 0 end) '交通设施服务',
sum(case when cat1='地名地址信息' then 1 else 0 end) '地名地址信息',
sum(case when cat1='道路附属设施' then 1 else 0 end) '道路附属设施',
sum(case when cat1='科教文化服务' then 1 else 0 end) '科教文化服务',
sum(case when cat1='体育休闲服务' then 1 else 0 end) '体育休闲服务',
sum(case when cat1='公司企业' then 1 else 0 end) '公司企业',
sum(case when cat1='金融保险服务' then 1 else 0 end) '金融保险服务',
sum(case when cat1='餐饮服务' then 1 else 0 end) '餐饮服务',
sum(case when cat1='住宿服务' then 1 else 0 end) '住宿服务'
from data_poi
group by h3_index
类似地,将查询结果保存到已经创建好的数据表data_poi_1
中。
insert into algorithm_data.data_poi_1
select
h3_index,
sum(case when cat1='汽车服务' then 1 else 0 end) '汽车服务',
sum(case when cat1='购物服务' then 1 else 0 end) '购物服务',
sum(case when cat1='商务住宅' then 1 else 0 end) '商务住宅',
sum(case when cat1='生活服务' then 1 else 0 end) '生活服务',
sum(case when cat1='医疗保健服务' then 1 else 0 end) '医疗保健服务',
sum(case when cat1='风景名胜' then 1 else 0 end) '风景名胜',
sum(case when cat1='政府机构及社会团体' then 1 else 0 end) '政府机构及社会团体',
sum(case when cat1='交通设施服务' then 1 else 0 end) '交通设施服务',
sum(case when cat1='地名地址信息' then 1 else 0 end) '地名地址信息',
sum(case when cat1='道路附属设施' then 1 else 0 end) '道路附属设施',
sum(case when cat1='科教文化服务' then 1 else 0 end) '科教文化服务',
sum(case when cat1='体育休闲服务' then 1 else 0 end) '体育休闲服务',
sum(case when cat1='公司企业' then 1 else 0 end) '公司企业',
sum(case when cat1='金融保险服务' then 1 else 0 end) '金融保险服务',
sum(case when cat1='餐饮服务' then 1 else 0 end) '餐饮服务',
sum(case when cat1='住宿服务' then 1 else 0 end) '住宿服务'
from data_poi
group by h3_index