如何解决雅典娜插入新的值错误:多余的输入'INSERT'期望{'',',','SELECT','VALUES','TABLE'}
user_db模式如下:
2020-03 11 80 121
2020-04 20 30 121
2020-05 13 99 121
2020-06 12 19 121
......
month,user_count,total,grand_total,percentage_old,total_percentage_old
....
2020-06 20 30 121 73.3% 18.1%
需要从Athena查询中更新值百分比,来自六月的旧数据库的百分比total_percentage和较旧的数据记录,total_percentage_old,
with user_db as (
select *,user_count/total*100 as percentage,user_count/grand_total*100 as total_percentage
)
INSERT INTO user_db (percentage,total_percentage)
select percentage_old,total_percentage_old
from old_user_db as u
where u.month = '2020-06'
但出现此错误:
外部输入'INSERT'期望{'(',',','SELECT','VALUES, 'TABLE'}
需要保留with子句以便在其他查询中重复使用。 期望使用旧的用户数据库值获得具有六月百分比和total_percentage的user_db表。
解决方法
我不认为这是导致错误的原因,因为该错误是语法错误,但是您正试图插入CTE中,但这仍然无法正常工作。
WITH user_db (…)
定义仅在查询执行期间存在的临时关系user_db
。如果您已经有一个名为user_db
的表,则此关系将对其进行遮盖。 INSERT INTO user_db
无法插入该关系,因为它实际上并不存在。
user_db
关系也没有受支持的FROM
子句,Athena将不知道user_count
,total
和{{ 1}}列来自。
我不知道是否可以在其他数据库中编写这样的插入语句,我从未见过。无论哪种方式,雅典娜都不支持。如果您想进一步了解受支持的内容,请查看INSERT INTO
文档。
我怀疑您正在尝试执行类似操作,但是我不确定:
grand_total
如果您需要更多详细的帮助,则必须提供更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。