BigQuery Query работает с несколькими «лайками», но не работает с «in» - PullRequest
0 голосов
/ 23 апреля 2019

Я хотел бы выделить несколько писем с определенными заголовками.Я могу использовать несколько «лайков», связанных с OR в предложении where.Это дает мне ряд результатов.Однако, если я попытаюсь ввести ____ в («____», «____» и т. Д.), Код неожиданно ничего не выдаст.

Это не работает.

select DATE_TRUNC(DATE(send_time,"America/Los_Angeles"), week(monday)) as week,
status, 
settings_title,
sum(emails_sent) as emails_sent,
sum(report_summary_opens) as report_summary_opens, 
sum(report_summary_unique_opens) as report_summary_unique_opens, 
sum(report_summary_subscriber_clicks) as report_summary_subscriber_clicks
from mailchimp.campaigns_view
where status = 'sent' 
and settings_title in ('%_LL_%', '%_IC_%', '%_AC_%', '%_CC_%', '%_PC_%')
group by 1,2,3
order by 1 desc

Однако это работает.

select DATE_TRUNC(DATE(send_time,"America/Los_Angeles"), week(monday)) as week,
status, 
settings_title,
sum(emails_sent) as emails_sent,
sum(report_summary_opens) as report_summary_opens, 
sum(report_summary_unique_opens) as report_summary_unique_opens, 
sum(report_summary_subscriber_clicks) as report_summary_subscriber_clicks
from mailchimp.campaigns_view
where status = 'sent' 
and (settings_title like '%_LL_%'
or settings_title like '%_IC_%'
or settings_title like '%_AC_%'
or settings_title like '%_CC_%'
or settings_title like '%_PC_%')
group by 1,2,3
order by 1 desc

Я уже пытался включить подзапрос в мое "from", которое исключает все нулевые settings_title.Есть идеи, почему это не работает?Я пропускаю небольшую синтаксическую ошибку?

Спасибо за помощь!

1 Ответ

2 голосов
/ 23 апреля 2019

Символ % будет работать только с LIKE.Для IN это только равенство.Попробуйте REGEXP_CONTAINS тоже.

Как в:

SELECT REGEXP_CONTAINS("abcdefg", '(xxx|zzz|yyy|cd)')
...