Как отфильтровать столбцы, которые содержат что-то 2 раза максимум, и один из них содержит что-то? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть такая таблица:

user - item - ip
user1 - item1 - ip1
user2 - item2 - ip1
user3 - item3 - ip1

user1 - item1 - ip2
user2 - item2 - ip2

Я хочу перечислить каждый ip2, который принадлежит любому пользователю и содержит item2. Также этот ip2 должен существовать в 2 столбцах макс. Если он существует более 2 раз, например, в ip1, не выбирайте его.

Как я могу это сделать?

1 Ответ

1 голос
/ 01 апреля 2020

Сгруппируйте по ip и установите условия в предложении has:

select ip
from tablename
group by ip
having sum(item = 'item2') > 0 and count(*) <= 2 and sum(user = 'user1') > 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...