gpt4 book ai didi

arrays - `t(sites)` 对 presto 查询意味着什么?

转载 作者:行者123 更新时间:2023-12-05 01:35:50 24 4
gpt4 key购买 nike

Here是 aws 网站的片段:

WITH dataset AS (
SELECT ARRAY[
CAST(
ROW('aws.amazon.com', ROW(true)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN))
),
CAST(
ROW('news.cnn.com', ROW(false)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN))
),
CAST(
ROW('netflix.com', ROW(false)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN))
)
] as items
)
SELECT sites.hostname, sites.flaggedActivity.isNew
FROM dataset, UNNEST(items) t(sites)
WHERE sites.flaggedActivity.isNew = true;

而且有效!但是 t(sites) 是什么意思呢?当我尝试使用真实表而不是 dataset 时出现错误 Table 'site' not found

它看起来很奇怪 - 就像用 UNNEST 关键字调用的函数。谁能解释一下这是什么?

最佳答案

FROM dataset, UNNEST(items) t(sites)

UNNEST() 是一个集合返回函数:它生成一系列行,其中一列保存原始数组中的值。

这组行也称为派生表。这里 t 是派生表的别名,site 是这个派生表中(唯一的)列的名称。

如果加上AS关键字可能会更容易理解:

FROM dataset, UNNEST(items) AS t(sites)

关于arrays - `t(sites)` 对 presto 查询意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62580282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com