SQL 错误 [500310] [42703]: [Amazon](500310) 无效操作:events_20180626_temp 中不存在列“engagement_time_msec”;

Posted

技术标签:

【中文标题】SQL 错误 [500310] [42703]: [Amazon](500310) 无效操作:events_20180626_temp 中不存在列“engagement_time_msec”;【英文标题】:SQL Error [500310] [42703]: [Amazon](500310) Invalid operation: column "engagement_time_msec" does not exist in events_20180626_temp; 【发布时间】:2019-12-05 10:42:07 【问题描述】:

我正在做这个查询

SELECT event_params FROM public.events_20180626_temp where event_name='user_engagement';

它给出了正确的如下。

"firebase_screen_class": "SplashScreenActivity", "firebase_event_origin": "auto", "firebase_screen_id": "7757319118664517009", "engagement_time_msec": "3804"
"firebase_screen_class": "BaseActivity", "firebase_event_origin": "auto", "firebase_screen_id": "-8308759841787556451", "engagement_time_msec": "5184"
"firebase_screen_class": "SplashScreenActivity", "firebase_event_origin": "auto", "firebase_screen_id": "5605799982713019219", "engagement_time_msec": "2976"
"firebase_screen_class": "CreateTaleActivity", "firebase_event_origin": "auto", "firebase_screen_id": "5605799982713019221", "engagement_time_msec": "46937"
"firebase_screen_class": "TaleLocationActivity", "firebase_event_origin": "auto", "firebase_screen_id": "5605799982713019223", "engagement_time_msec": "2952"
"firebase_screen_class": "TalePhotoEditorActivity", "firebase_event_origin": "auto", "firebase_screen_id": "5605799982713019228", "engagement_time_msec": "2295"
"firebase_screen_class": "BaseActivity", "firebase_event_origin": "auto", "firebase_screen_id": "5605799982713019220", "engagement_time_msec": "10664"

当我更改查询以提取键“engagement_time_msec”的值时,它显示engagement_time_msec 不存在于表中。这是针对它的查询。

select json_extract_path_text(event_params, "engagement_time_msec") from public.events_20180626_temp where event_name='user_engagement';

我使用下面的查询确认event_params 列是否包含有效的 json 字符串。

select is_valid_json(event_params) from public.events_20180626_temp;

它为每一行返回true

true
true
true
true
true
true

有人可以帮我吗?我对红移完全陌生。谢谢。

event_params 列的 FYI 数据类型是 varchar(65553)

【问题讨论】:

【参考方案1】:

想通了。我想提取值的键 engagement_time_msec 必须使用单引号而不是双引号。

select json_extract_path_text(event_params, 'engagement_time_msec') from public.events_20180626_temp where event_name='user_engagement';

【讨论】:

以上是关于SQL 错误 [500310] [42703]: [Amazon](500310) 无效操作:events_20180626_temp 中不存在列“engagement_time_msec”;的主要内容,如果未能解决你的问题,请参考以下文章

AMAZON 500310:无效操作:“Drop”处或附近的语法错误

Redshift 存储过程 - [Amazon](500310) 无效操作:“$1”处或附近的语法错误;

Redshift 中的 DAU WAU MAU 错误:[Amazon](500310) 无效操作:由于内部错误,不支持此类关联子查询模式;

Redshift Aginity Workbench - 错误:42703:table_y 中不存在列“XXX”

调用 o79.getDynamicFrame 时出错。 [Amazon](500310) 无效操作:“s_next_of_kin”处或附近的语法错误

db2 执行报错收集