Как показать список значений одного элемента, которые повторяются из-за смены сервиса - PullRequest
1 голос
/ 29 апреля 2020

Мне нужно найти способ перечислять только те учетные записи, у которых есть изменения в обслуживании. В базе данных я смог получить их в списке дважды, показывая изменение по запросу, перечисляя их как:

*--------------------*
|SERVICE      ACCOUNT|
*--------------------*
|FULL PACKAGE   003  |
|FULL PACKAGE   004  |
|GRASS ONLY     005  | 
|FULL PACKAGE   005  |
|GRASS ONLY     006  |
|FULL PACKAGE   007  |
|GRASS ONLY     010  |
|FULL PACKAGE   010  |
*--------------------*

Запросы, которые я пытался использовать для этого до сих пор:

Мои основные попытки

enter image description here

Я могу вернуть со вторым запросом список, подобный тому, что выше, два других ничего не возвращают ( Для первого я предполагаю, что это потому, что вы ищете значение с буквально обоими в ячейке?)

Но дело в том, что мне нужны только те номера счетов, которые повторяются на основе: WHERE contract.SERVICE = ' ТОЛЬКО GRASS 'И contract.SERVICE =' FULL PACKAGE 'в другом столбце

В идеале возвращаемый результат должен выглядеть следующим образом: 1 ... 005 2 ... 010

1 Ответ

2 голосов
/ 29 апреля 2020

Если я следил за вами правильно, вы можете использовать агрегацию:

select account
from mytable
where service in ('GRASS ONLY', 'FULL PACKAGE')  -- either one
group by account
having count(service) = 2                        -- both match

Это дает вам account с, которые имеют оба service с. Если есть дубликат (account, service), тогда вам нужно having count(distinct service) = 2.

...