运行 在 ADW 中执行 sql 脚本时出错
Getting error while running an sql script in ADW
我收到如下错误:
插入值语句只能包含常量文字值或变量引用。
这些是我收到错误的语句:
INSERT INTO val.summary_numbers (metric_name, metric_val, dt_create) VALUES ('Total IP Enconters',
(SELECT
count(DISTINCT encounter_id)
FROM prod.encounter
WHERE encounter_type = 'Inpatient')
,
(SELECT min(mod_loadidentifier)
FROM ccsm.stg_demographics_baseline)
);
INSERT INTO val.summary_numbers (metric_name, metric_val, dt_create) VALUES ('Total 30d Readmits',
(SELECT
count(DISTINCT encounter_id)
FROM prod.encounter_attr
WHERE
attr_name = 'day_30_readmit' AND attr_value = 1)
,
(SELECT min(mod_loadidentifier)
FROM ccsm.stg_demographics_baseline));
像这样更改您的查询:
insert into val.summary_numbers
select
'Total IP Enconters',
(select count(distinct encounter_id)
from prod.encounter
where encounter_type = 'Inpatient'),
(select min(mod_loadidentifier)
from ccsm.stg_demographics_baseline)
在使用ADW服务时,建议您考虑使用CTAS operation possibly combined with a RENAME。 RENAME 是元数据操作,因此速度很快,CTAS 是并行的,其中 INSERT INTO 将逐行进行。
如果没有创建 table 语句,您可能仍然有一个数据相关问题很难确定。
谢谢
我收到如下错误:
插入值语句只能包含常量文字值或变量引用。
这些是我收到错误的语句:
INSERT INTO val.summary_numbers (metric_name, metric_val, dt_create) VALUES ('Total IP Enconters',
(SELECT
count(DISTINCT encounter_id)
FROM prod.encounter
WHERE encounter_type = 'Inpatient')
,
(SELECT min(mod_loadidentifier)
FROM ccsm.stg_demographics_baseline)
);
INSERT INTO val.summary_numbers (metric_name, metric_val, dt_create) VALUES ('Total 30d Readmits',
(SELECT
count(DISTINCT encounter_id)
FROM prod.encounter_attr
WHERE
attr_name = 'day_30_readmit' AND attr_value = 1)
,
(SELECT min(mod_loadidentifier)
FROM ccsm.stg_demographics_baseline));
像这样更改您的查询:
insert into val.summary_numbers
select
'Total IP Enconters',
(select count(distinct encounter_id)
from prod.encounter
where encounter_type = 'Inpatient'),
(select min(mod_loadidentifier)
from ccsm.stg_demographics_baseline)
在使用ADW服务时,建议您考虑使用CTAS operation possibly combined with a RENAME。 RENAME 是元数据操作,因此速度很快,CTAS 是并行的,其中 INSERT INTO 将逐行进行。
如果没有创建 table 语句,您可能仍然有一个数据相关问题很难确定。
谢谢