利用SQL对度假区进行评分

本文通过创建临时表并加载数据,对不同类型的度假区设施(如住宿、景点和餐饮)的点击量和搜索量进行加权计算,进而得出各地区的综合排名及满意度评估。此外,还展示了如何将Excel表格中的行转换为列的方法。
create table tmp_huadan(
t_area char(50),
t_type char(50),
t_dianji int,
t_sousuo int)
go
load table tmp_huadan(
t_area '|',
t_type '|',
t_dianji '|',
t_sousuo 0x0a)
using file '/xwtec/data/dujiaqu.txt'
quotes off
escapes off
go
select L.t_area,sum(L.t_dianji_new) as t_dianji,sum(L.t_sousuo_new) as t_sousuo
 from (select t_area,case when t_type='住宿设施' then t_dianji*0.4
                   when t_type='景点' then t_dianji*0.3
                   when t_type='餐饮设施' then t_dianji*0.2
                   else t_dianji*0.1 end as t_dianji_new
                   ,case when t_type='住宿设施' then t_sousuo*0.4
                   when t_type='景点' then t_sousuo*0.3
                   when t_type='餐饮设施' then t_sousuo*0.2
                   else t_sousuo*0.1 end as t_sousuo_new
                   from tmp_huadan where convert(char(20),t_dianji)<>'' or convert(char(20),t_sousuo)<>'')L group by L.t_area

2. 度假区综合排名

select t_area,t_dianji*0.7+t_sousuo*0.3 from (select L.t_area,sum(L.t_dianji_new) as t_dianji,sum(L.t_sousuo_new) as t_sousuo
 from (select t_area,case when t_type='住宿设施' then t_dianji*0.4
                   when t_type='景点' then t_dianji*0.3
                   when t_type='餐饮设施' then t_dianji*0.2
                   else t_dianji*0.1 end as t_dianji_new
                   ,case when t_type='住宿设施' then t_sousuo*0.4
                   when t_type='景点' then t_sousuo*0.3
                   when t_type='餐饮设施' then t_sousuo*0.2
                   else t_sousuo*0.1 end as t_sousuo_new
                   from tmp_huadan where convert(char(20),t_dianji)<>'' or convert(char(20),t_sousuo)<>'')L group by L.t_area)L group by L.t_area)M


3. EXCEL中行转化为列

select t_type,t_area,t_url,case when t_type='大众点评' then t_dianji
            else NULL end as t_dianji_1,case when t_type='大众点评' then t_sousuo 
            else NULL end as t_sousuo_1,case when t_type='艺龙' then t_dianji
            else NULL end as t_dianji_2,case when t_type='艺龙' then t_sousuo 
            else NULL end as t_sousuo_2 from tmp_dujiaqu

4. 度假区满意度

select t_area,sum(t_dianji1_2) as fenshu from (select t_area,t_type,case when t_type='住宿设施' then t_dianji1*0.4
                       when t_type='景点' then t_dianji1*0.3
                       when t_type='餐饮设施' then t_dianji1*0.2
                       else t_dianji1 *0.1 end as t_dianji1_2 from tmp_huadan3)L group by t_area
select t_area,sum(L.t_sousuo_2) as t_sousuo from (select t_area,t_sousuo,t_type,case when t_type='住宿设施' then t_sousuo*0.4
                       when t_type='景点' then t_sousuo*0.3
                       when t_type='餐饮设施' then t_sousuo*0.2
                       else t_sousuo *0.1 end as t_sousuo_2 from tmp_huadan where t_sousuo<>0)L


转载于:https://my.oschina.net/u/1866459/blog/662273

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值