Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 这里没有名为parameter_number的列,它们的代码会抛出错误,示例中显示的数字与value列中的数字相同。所以我很确定他们想对value列求和。在这个示例数据中,没有重复的参数/值。在完整的数据集中,我将按site_id、date和另一列进行分组_Sql_Database_Oracle_Group By_Pivot - Fatal编程技术网

Sql 这里没有名为parameter_number的列,它们的代码会抛出错误,示例中显示的数字与value列中的数字相同。所以我很确定他们想对value列求和。在这个示例数据中,没有重复的参数/值。在完整的数据集中,我将按site_id、date和另一列进行分组

Sql 这里没有名为parameter_number的列,它们的代码会抛出错误,示例中显示的数字与value列中的数字相同。所以我很确定他们想对value列求和。在这个示例数据中,没有重复的参数/值。在完整的数据集中,我将按site_id、date和另一列进行分组,sql,database,oracle,group-by,pivot,Sql,Database,Oracle,Group By,Pivot,这里没有名为parameter_number的列,它们的代码会抛出错误,示例中显示的数字与value列中的数字相同。所以我很确定他们想对value列求和。在这个示例数据中,没有重复的参数/值。在完整的数据集中,我将按site_id、date和另一列进行分组,以生成一组唯一的变量,每个唯一的组合只有一个值。在这种情况下,sum或max都可以工作,但有点慢,这两个变量ANC需要15秒以上的时间。三号。我有12个左右的其他变量需要添加。没问题,看过GMB的答案后,我建议这是可行的,但有点慢,这两个变量


这里没有名为parameter_number的列,它们的代码会抛出错误,示例中显示的数字与value列中的数字相同。所以我很确定他们想对value列求和。在这个示例数据中,没有重复的参数/值。在完整的数据集中,我将按site_id、date和另一列进行分组,以生成一组唯一的变量,每个唯一的组合只有一个值。在这种情况下,sum或max都可以工作,但有点慢,这两个变量ANC需要15秒以上的时间。三号。我有12个左右的其他变量需要添加。没问题,看过GMB的答案后,我建议这是可行的,但有点慢,这两个变量ANC需要15秒以上的时间。三号。我有12个左右的其他变量需要添加。没问题,看过GMB的答案后,我建议在我的完整数据集上不能完全实现这一点,但我认为这与多个参数(10个其他参数加上ANC和NO3)有关。当我有更多的时间的时候,我可能会再看一看。我不能完全在我的完整数据集上使用它,但我认为它与多个参数(10个其他参数加上ANC和NO3)有关。等我有时间再看一下。
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');
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');

drop table parameter_pivot_test;
create table parameter_pivot_test
AS
(select coalesce(anc_site, no3_site) as site_id, anc, no3, anc_method, mo3_method from
(select site_id as anc_site, value as anc, method as anc_method from parameter_test where parameter = 'ANC') anc
FULL OUTER JOIN
(select site_id as no3_site, value as no3, method as no3_method from parameter_test where parameter = 'NO3') no3
ON anc.anc_site = no3.no3_site
)
;
select
    site_id,
    max(case when parameter = 'ANC' then value end) anc,
    max(case when parameter = 'NO3' then value end) no3,
    max(case when parameter = 'ANC' then method end) anc_method,
    max(case when parameter = 'NO3' then method end) no3_method
from parameter_pivot
group by side_id
SITE_ID | ANC | NOC | ANC_METHOD | NO3_METHOD :------ | ---: | --: | :--------- | :--------- site2 | 21.8 | 7.2 | Gran 1952 | EPA 1983 site1 | 10.1 | 2.1 | Gran 1952 | EPA 1983