一、订单表如下:
order_id | product_name |
1 | 铅笔,苹果,抽纸 |
2 | |
3 | 苹果,草莓,猕猴桃 |
二、统计每种商品被购买次数,需要将product_name列转行,其中order_id等于2的是异常数据product_name为null。
如果写成下面这样:
-- explode里面的字段不能为null,否则null的结果记录就没有了
select product_name_element -- 产品名称
,count(1) as buy_num -- 购买次数
from(
select
order_id -- 订单id
from order
lateral view explode(split(product_name,',')) t2 as product_name_element
)t
group by product_name_ele