Sql athena列包含列表类型数据
有这样一张雅典娜桌子:Sql athena列包含列表类型数据,sql,presto,Sql,Presto,有这样一张雅典娜桌子: userid visited 001a ['New York','Los Angeles'] 002b ['Atlanta'] 0030 ['New York','Paris','Albany'] .... 不太清楚如何查询这样的列表类型列。 我怎么能找到 访问“纽约”的用户希望: 参观了所有不同的城市?期望输出: 假设访问的是presto中的数组类型: 将数据集作为 挑选* 从…起 值“001a”,数组[“纽约”,“洛杉矶],
userid visited
001a ['New York','Los Angeles']
002b ['Atlanta']
0030 ['New York','Paris','Albany']
....
不太清楚如何查询这样的列表类型列。
我怎么能找到
访问“纽约”的用户希望:
参观了所有不同的城市?期望输出:
假设访问的是presto中的数组类型:
将数据集作为
挑选*
从…起
值“001a”,数组[“纽约”,“洛杉矶],
'002b',数组['Atlanta','Los Angeles']
作为t id,已访问
对于第一个一次性使用功能:
选择id
从数据集
“亚特兰大”在哪里返回002b
对于第二个,您可以使用函数,但它在Athena中对我不可用,或者我使用它错误=,因此您可以解决以下问题:
选择array\u distinctflattenarray\u
从数据集;-返回`{纽约、洛杉矶、亚特兰大}`
如果visited是一个字符串,您可以通过将其转换为JSON,然后将其转换为数组。visited的数据类型是什么?另外,两个问题对于堆栈溢出问题来说太多了。
0001a
00030
'New York'
'Los Angeles'
'Paris'
'Atlanta'
'Albany'