行转列的应用合并多行综合定位


行转列的应用:

可以利用行转列把一个事件的多行属性放在一行,和事件关联,综合定位事件,不必像之前一样放在一个综合属性,|分隔然后用数组切分函数

原sql

 

 

可以利用行转列把一个事件的多行属性放在一行,和事件关联,综合定位事件

SELECT 
event_id,
"1",
"2"
FROM
(
SELECT event_id,
max( (case when (  event_property_name='指标名称')
 then
  event_property_value
  else
  null
  end
   )) as "1",
   max((case when ( event_property_name='所属库')
 then
  event_property_value
  else
  null
  end
   )) AS "2"


FROM daily_new_clientrpt_slave GROUP BY event_id )

 


------------------------------有中文不用下面写法,不起作用-----------------------------

SELECT event_code,
(case event_property_name when '指标名称'
 then
  event_property_value
  else
  null
  end
   ) as "1",
   (case event_property_name when '所属库'
 then
  event_property_value
  else
  null
  end
   ) AS "2"


FROM daily_new_clientrpt_slave 

 

================
最终合并sql
SELECT 
m.uid,T."1",T."2"
FROM
daily_new_clientrpt_master m
left JOIN
(
SELECT 
event_id,
"1",
"2"
FROM
(
SELECT event_id,
max( (case when (  event_property_name='指标名称')
 then
  event_property_value
  else
  null
  end
   )) as "1",
   max((case when ( event_property_name='所属库')
 then
  event_property_value
  else
  null
  end
   )) AS "2"


FROM daily_new_clientrpt_slave GROUP BY event_id ))T
on m.event_id=T.event_id

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值