我有下面的配置单元表和复杂的数据类型struct。你能帮我写一个特定城市的带有where子句的配置单元查询吗?
CREATE EXTERNAL TABLE user_t (
name STRING,
id BIGINT,
isFTE BOOLEAN,
role VARCHAR(64),
salary DECIMAL(8,2),
phones ARRAY<INT>,
deductions MAP<STRING, FLOAT>,
address ARRAY<STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>>,
others UNIONTYPE<FLOAT,BOOLEAN,STRING>,
misc BINARY
)
我可以在select子句中使用struct数据类型,但不能在where子句中使用相同的数据类型。
工作:
select address.city from user_t;
不工作:
select address.city from user_t where address.city = 'XYZ'
文档说明它在使用groupby或where子句时有局限性,并给出了解决方案。但我不太明白。
链接:文档
请建议。谢谢您。
1条答案
按热度按时间gorkyyrv1#
演示
选项1:分解
选项2:内联
选项3:自连接