Redshift-如何在数组字段上按max()进行分组



我正在使用红移

我有一张这样的桌子:metric是一种超类型,使用红移中的array((函数构建

度量
用户
红色 阵列(2021,120(
红色 array(2020199(
蓝色 阵列(2021,151(

如果您熟悉Redshift Spectrum,那么当您查询外部模式时,其逻辑与unnest数组字段非常相似。

在您的情况下,查询非常简单:

SELECT t.user, max(metric)
FROM my_schema.my_table as t, t.metrics as metric
GROUP BY 1

如果数组包含除数字类型之外的其他类型,您可以简单地将其强制转换为int或double-like:

max(metric::int)

这样,像"hello world"这样的纯字符串被认为是null,但像"33333"这样的字符串被转换为int

最新更新