Объдинение разных результатов в одну строку, но в разные столбцы в SQL
Всем привет. Есть таблица: table со столбцами id и option_id. id - это идентификатор компании, а option_id - это подключенные услуги, возможные значения: 1,2,3,4,5. У id может быть несколько значений из option_id, выглядит примерно так:
| id | option_id |
|---|---|
| 7777 | 1 |
| 7777 | 3 |
| 7777 | 4 |
Нужно вывести формат: id, Есть услуга 2, Есть услуга 4. И в значениях строк вместо 2 и 4 указывать Да или Нет.
Ожидаемый результат:
| id | Есть услуга 2 | Есть услуга 4 |
|---|---|---|
| 7777 | Да | Нет |
| 7978 | Да | Да |
| 8392 | Нет | Да |
Я использую такой запрос:
SELECT DISTINCT id,
CASE WHEN option_id IN (1,3,4,5) THEN 'Нет' WHEN option_id = 2 THEN 'Да'ELSE CAST(option_id AS CHAR(20))
END "Есть услуга 2",
CASE WHEN option_id IN (1,2,3,5) THEN 'Нет' WHEN option_id = 4 THEN 'Да'ELSE CAST(option_id AS CHAR(20))
END "Есть услуга 4"
FROM table
Но получаю результат:
| id | Есть услуга 2 | Есть услуга 4 |
|---|---|---|
| 7777 | Нет | Нет |
| 7777 | Да | Нет |
| 7777 | Нет | Да |
| 7778 | Нет | Нет |
| 7778 | Да | Нет |
Т.е. мой запрос выводит дополнительные строки для id по каждому значению, а хотелось бы чтоб id не повторялся и приоритетно выводились только значения 2,4 = Да, а все остальное Нет и не создавались дополнительные строки. Как можно пофиксить?