Мой первый запрос, где у меня возникла проблема: Сложная проблема GROUP BY в ORACLE теперь определенно решена.
Однако у меня есть новый вопрос. Я пытаюсь преобразовать это, еще раз, чтобы теперь иметь этот вывод:
| EMAIL | WIFI | ...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yes | 20 | 24 | ...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
No | 4 | 0 | ...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Unknown | 1 | 1 | ...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Вот данные, которые помогут вам построить такой вывод. Я попытался снова использовать unpivot / pivot с запросом, который Рене дал мне в решенной проблеме, которую я цитирую, но, к сожалению, я получил ошибку, которая
«ORA-56901: непостоянное выражение недопустимо для значений pivot | unpivot» sighh ...
with
count_table as (
select 1001 device_id, 4 quantity from dual union all
select 1002 device_id, 20 quantity from dual union all
select 1003 device_id, 1 quantity from dual
),
device_table as (
select 1001 id, 'Yes' wifi, 'No' email, 'No' bluetooth from dual union all
select 1002 id, 'Yes' wifi, 'Yes' email, 'No' bluetooth from dual union all
select 1003 id, 'Unknown' wifi, 'Unknown' email, 'Yes' bluetooth from dual
)
Может быть, есть более простое решение для этого? Мне обязательно нужно прочитать книгу о реляционных БД:)