Мы работаем над созданием наших данных в виде реляционной базы данных / набора и набора данных столбцов строк (чтобы пользователи данных могли использовать тот формат, который им больше подходит). Вот упрощенная таблица наших данных:
drop table parameter_test;
create table parameter_test
(
site_id VARCHAR(30),
parameter VARCHAR(30),
value NUMBER,
method VARCHAR(30)
);
insert into parameter_test values ('site1', 'ANC', 10.1,'Gran 1952');
insert into parameter_test values('site2', 'ANC', 21.8, 'Gran 1952');
insert into parameter_test values('site1', 'NO3', 2.1, 'EPA 1983');
insert into parameter_test values('site2', 'NO3', 7.2, 'EPA 1983');
Я знаю, как повернуть значения, но это не помещает метод в конкретный c параметр_column (метод ANC_method или NO3):
drop table parameter_pivot_test;
create table parameter_pivot_test
AS
(select * from (select site_id, parameter_number, parameter
from parameter_test)
pivot (sum(parameter_number) for parameter in (
'ANC' ANC,
'NO3' NO3
)))
;
Но я хочу получить следующую таблицу:
drop table parameter_pivot;
create table parameter_pivot
(
site_id VARCHAR(30),
ANC NUMBER,
NO3 NUMBER,
ANC_method VARCHAR(30),
NO3_method VARCHAR(30)
);
insert into parameter_pivot values ('site1', 10.1, 2.1, 'Gran 1952', 'EPA 1983');
insert into parameter_pivot values ('site2', 21.8, 7.2, 'Gran 1952', 'EPA 1983');
Как мне получить методы специфицированного c для подключения к параметру c в качестве нового столбца? Я чувствую, что это может быть какая-то группировка за заявлением, но я не уверен, с чего начать.
Спасибо!