MAPKEYS
返回任何 VMap 数据中存在的虚拟列(和值)。此转换函数需要 OVER(PARTITION BEST)
子句。
语法
MAPKEYS (VMap-data)
参数
-
VMap-data
任何 Vmap 数据。Vmap 的存在形式可以是:
-
Flex 表的
__raw__
列 -
从映射函数返回的数据(示例) MAPLOOKUP
-
其他数据库内容
-
-
max_key_length
- 在
__raw__
列中,指定函数可以返回的键的最大长度。长度超过max_key_length
的键会导致查询失败。默认为 VMap 列长度和 65K 中较小的值。
示例
确定映射数据的虚拟列数
本例显示如何创建查询,使用 over(PARTITION BEST)
子句和 flex 表、 darkdata
,查找映射数据的虚拟列数。使用 JSON tweet 数据填充表。
=> SELECT COUNT(keys) FROM (SELECT MAPKEYS(darkdata.__raw__) OVER(PARTITION BEST) FROM darkdata) AS a;
count
-------
550
(1 row)
查询映射中所有虚拟列的有序列表
本例显示您查询映射中所有虚拟列的有序列表时,返回数据的片段。
=> SELECT * FROM (SELECT MAPKEYS(darkdata.__raw__) OVER(PARTITION BEST) FROM darkdata) AS a;
keys
-------------------------------------
contributors
coordinates
created_ at
delete.status.id
delete.status.id_str
delete.status.user_id
delete.status.user_id_str
entities.hashtags
entities.media
entities.urls
entities.user_mentions
favorited
geo
id
.
.
.
user.statuses_count
user.time_zone
user.url
user.utc_offset
user.verified
(125 rows)
指定 MAPKEYS 可以返回的键的最大长度
=> SELECT MAPKEYS(__raw__ USING PARAMETERS max_key_length=100000) OVER() FROM mapper;
keys
-------------
five_Map
four
one
six
three_Array
two
(6 rows)