在雅典娜(元数据库)中选择不为空的列
Selecting Columns which are not null in Athena(Metabase)
我在 Athena(Metabase) 中有一个 table 的 1000 多个列,我想知道如何只提取那些对于特定 ID 组不为空的列。
通常,这需要将您的列反透视到行,然后检查不为空的位置,然后返回到 PIVOT。
从文档来看,Athena 可能做得更简单。
记录 here
SELECT filter(ARRAY [-1, NULL, 10, NULL], q -> q IS NOT NULL)
哪个returns:
[-1,10]
不幸的是,因为在我们到达数组之前没有动态的能力,这看起来像:
WITH dataset AS (
SELECT
ID,
ARRAY[field1, field2, field3, .....] AS fields
FROM
Your1000ColumnTable
)
SELECT ID, SELECT filter(fields, q -> q IS NOT NULL)
FROM dataset
如果您需要访问数组中的列名,请在创建数组时使用到字段名的映射,如 here
我在 Athena(Metabase) 中有一个 table 的 1000 多个列,我想知道如何只提取那些对于特定 ID 组不为空的列。
通常,这需要将您的列反透视到行,然后检查不为空的位置,然后返回到 PIVOT。 从文档来看,Athena 可能做得更简单。 记录 here
SELECT filter(ARRAY [-1, NULL, 10, NULL], q -> q IS NOT NULL)
哪个returns:
[-1,10]
不幸的是,因为在我们到达数组之前没有动态的能力,这看起来像:
WITH dataset AS (
SELECT
ID,
ARRAY[field1, field2, field3, .....] AS fields
FROM
Your1000ColumnTable
)
SELECT ID, SELECT filter(fields, q -> q IS NOT NULL)
FROM dataset
如果您需要访问数组中的列名,请在创建数组时使用到字段名的映射,如 here