При попытке создать сводную область я получаю ошибку ORA-00904 invalid identifier
в следующем запросе.
Определение таблицы
create table table1(id int, name varchar2(20), col1 int);
insert into table1 values(1, 'Alex', 99);
insert into table1 values(2, 'Alex', 98);
insert into table1 values(3, 'James', 97);
insert into table1 values(4, 'Eric', 99);
insert into table1 values(5, 'Stan', 99);
Запрос ошибки
select name, col1
from table1
pivot (count(name) for col1 in (99, 98, 97))
;
Тем не менее, следующие запросы будут работать
Рабочий запрос 1
select *
from table1
pivot (count(name) for col1 in (99, 98, 97)) p
;
Рабочий запрос 2
with cte as (
select name, col1
from table1
)
select *
from cte
pivot (count(name) for col1 in (99, 98, 97))
;
Я предпочитаю вывод Рабочего запроса 2, поскольку получаю счет без учета всех остальных данных
99 | 98 | 97
-------|----|-------
3 | 1 | 1
Почему возникает ошибка при попытке поворота при указании столбцов непосредственно из таблицы?
SQL Пример Fiddle - ошибка на 3-й запрос