Афина sql запрос, чтобы найти элементы, не содержащие значения - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть таблица в корзине, я использую Athena для получения необходимых данных. Моя таблица выглядит как

resourceid appname 
i-1        A-1
i-1        A-2
i-1        A-3
i-2        A-3
i-2        A-2 

Мне нужно найти все ресурсы, где A-1 не найден, результат должен дай мне я-2. Как написать в sql

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Вы можете сделать, используя not exists. вот демоверсия .

select
    distinct resourceid
from myTable m1
where not exists (
    select
        resourceid
    from myTable m2
    where m1.resourceid = m2.resourceid
    and appname = 'A-1'

)
0 голосов
/ 28 апреля 2020

Вы можете использовать агрегирование, чтобы сгруппировать все строки, имеющие одинаковый resourceid, а затем отфильтровать группы строк, в которых appname 'A-1' не отображается:

select resourceid
from mytable
group by resourceid
having max(case when appname = 'A-1' then 1 else 0 end) = 0
...