У меня есть структура таблицы, которая выглядит следующим образом:
Колонки:
Номер счета
Сервисный код
Количество
Учетные записи могут иметь несколько служебных кодов в отдельных строках. Например, для этой учетной записи '1868603' их сервисные коды хранятся так:
ACCOUNT_NUMBER SERVICE_CODE SERVICE_QUANTITY
1868603 101 1
1868603 101 1
1868603 101 1
1868603 101 1
1868603 101 1
1868603 101 1
1868603 326 1
1868603 326 1
1868603 327 1
1868603 327 1
1868603 328 1
1868603 328 1
Я пишу запрос, в котором необходимо проверить, есть ли на их счету конкретные коды услуг Я не беспокоюсь о количестве. Я просто хочу посмотреть, существуют ли они для учетной записи.
Это то, что я имею до сих пор:
SELECT ACCOUNT_NUMBER, COUNT(SERVICE_CODE) HOW_MANY
FROM (
SELECT DISTINCT ACCOUNT_NUMBER, SERVICE_CODE
FROM CUSTOMER_SERVICES
WHERE ACCOUNT_NUMBER = 1868603
AND SERVICE_CODE IN('323','326','327','328')
)
GROUP BY ACCOUNT_NUMBER
Что дает мне:
ACCOUNT_NUMBER HOW_MANY
1868603 3
3 - правильное число, потому что есть три экземпляра IN ('323', '326', '327', '328'), что я и пытаюсь определить.
Есть ли способ упростить этот запрос без предварительного подбора данных?
Спасибо!