我已经创建了一个用于访问存储在S3中的PARQUET中的记录的"虚拟"表.我已经使用以下查询在"虚拟"表的顶部创建了一个"DUMMY_FLATEED"视图

CREATE OR REPLACE VIEW dummy_flattened AS 
select
  deviceid
, a.postid
, a.craterid
, a.posttype
, a.category
FROM dummy cross join UNNEST(postlist) as t(a)

邮寄列表行的示例:

[{类别=[{id=1,名称=舞蹈}],craterid=1,postid=1,posttype=a}, {类别=[{2,名称=舞蹈}],陨石坑ID=2,位置ID=2,张贴类型=b}]

现在,当我try 使用查询在Dummy_Flated视图之上创建一个视图时

create or replace view test as select distinct deviceid from dummy_flattened limit 100

雅典娜给了我一个错误:

Failed analyzing stored view 'logs.dummy_flattened': line
19:12: Column alias list has 1 entries but 't' has 4 columns available

但我可以使用上面提到的相同查询来查看结果

select distinct deviceid from dummy_flattened limit 100

但是,当我不包括.postid、.craterid时,在创建Dummy_Flated时,我可以成功地创建测试视图. 然而,我想不出如何在包括postid、craterid、postype的平面化视图之上创建一个视图,而不会遇到错误.

在过go 的几个小时里,我一直在try 多种组合,但没有成功.

A few of the combinations i tried while creating flattened view

1. select deviceid,t.* as (a) FROM dummy cross join UNNEST(postlist) as t
2. select deviceid,(t.a.*) as (c,d,e,f) FROM dummy cross join UNNEST(postlist) as t(a)
3. And the one i mentioned above at the beginning

我想知道我是否遗漏了什么,或者我们是否可以不在未嵌套的记录上创建视图.我一直在参考堆栈溢出中的多个文档和其他类似的问题,但没有找到任何东西.作为最后的手段,我贴出了这篇文章

推荐答案

我现在使用的版本是雅典娜3,这就是问题所在.我不知道为什么,但当我切换到雅典娜版本2时没有错误.可能是错误之类的.

Sql相关问答推荐

用于动态查询情况的存储过程常识模式

在postgres中动态计算出现次数并插入到json中

如何在幂函数中正确使用Power()和Exp()

从日期开始向前填充重复项

如何在postgres函数中插入后返回布尔值?

计算周时出现SQL错误结果

ColdFusion+Docker:未安装SQLSERVER包

如何为该查询编写正确分区依据

将伪数据插入Postgres表

将用户授予另一个用户不授予权限

Proc SQL Select Distinct SAS

如何使用SQL生成数据的滚动3天总和

根据时间值提取记录

Select 组中的第一行,但在并发环境中

获取记录的上一个值,并将其与当前值一起显示

如何优化仅返回符合条件的三条记录的查询?

比使用NOT EXISTS更高效的SQL删除方法是什么?

查询以查找今天和昨天的数据之间的差异以及伪列

如何通过子 Select 在一次更新(并行数组)中多次更新相同的行

pyspark 将列转换为行