Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Is there a way to make this clause more compact?

SELECT campaign
       ,event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL  -- What does it mean when a campaign is null in Adobe_analytics
AND
(
"1" IN UNNEST(split(event_list,","))
OR "2" IN UNNEST(split(event_list,","))
OR "3" IN UNNEST(split(event_list,","))
)

Something like :

SELECT campaign
   ,event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND ("1" OR "2" OR "3") IN UNNEST(split(event_list,","))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
212 views
Welcome To Ask or Share your Answers For Others

1 Answer

I would use exists:

SELECT campaign, event_list
FROM `adobe_analytics.raw_data_20200*` rd
WHERE campaign IS NOT NULL AND
      EXISTS (SELECT 1
              FROM UNNEST(SPLIT(rd.event_list)) el
              WHERE el IN ('1', '2', '3')
             );

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...