Одним из возможных решений является использование in_file (строка str, строка имени файла) function.
Поместите список доменов в текстовый файл, по одному домену в строке, в текстовый файл.Для этой цели вы можете использовать таблицу кустов, хранящуюся в виде текста, и вызывать функцию в операторе CASE:
CASE
WHEN in_file(cleandomain,'file/path') THEN cleandomain
ELSE 'other'
END AS status
Другое решение - объединить список доменов в массив в подзапросе, объединить с помощью перекрестного объединения и использовать array_contains().Это может работать намного быстрее, если список не слишком большой:
with dom as (
SELECT collect_set(cleandomain) dom
FROM keenek1.daily_top_doms
)
select
case when array_contains(d.dom, s.cleardomain) then s.cleandomain
else 'other'
end as status
from (your query) s cross join dom d --one row cross join