我需要在case语句中放置以下代码:
select
count (*)
from db.tab1
lateral view explode(secondary.tertiary) exp as lv
where id IN ('6','1') and array_contains (lv.ci, "1");
我试过:
select
sum(
case
when id IN ('6','1')
and array_contains ((lateral view explode(secondary.tertiary)).ci, "1")
then 1
else 0
end)
from db.tab1;
但是有个错误。
1条答案
按热度按时间jexiocij1#
对于表上提供的sql
tab1
,实际逻辑如下:爆炸场
secondary.tertiary
,别名为lv
,从而生成临时结果集(表)tab2
;连接的类似连接的操作
tab2
的字段返回到中的行tab1
,生成另一个中间表tab3
;从中选择
tab3
,在此基础上where
应用条件。