Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询列为映射[Int,Int]的SQL_Sql_Amazon Athena - Fatal编程技术网

查询列为映射[Int,Int]的SQL

查询列为映射[Int,Int]的SQL,sql,amazon-athena,Sql,Amazon Athena,我正在做一些scala查询生成器 我的专栏之一是Map[Int,Int] sql查询查询其中一个对的值是什么样子的 比如: WHERE Map[KEY] >= VALUE 如何在SQL的列中访问映射上的一个值 语法可以使用Postgresql或Athena。如果我知道查询的名称,我可以随时用谷歌搜索备选方案 谢谢 找到了解决方案: 从 您可以前往aws雅典娜并运行: WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'a

我正在做一些scala查询生成器

我的专栏之一是
Map[Int,Int]

sql查询查询其中一个对的值是什么样子的

比如:

WHERE Map[KEY] >= VALUE
如何在SQL的列中访问映射上的一个值

语法可以使用Postgresql或Athena。如果我知道查询的名称,我可以随时用谷歌搜索备选方案

谢谢

找到了解决方案:

您可以前往aws雅典娜并运行:

WITH dataset AS (
  SELECT MAP(
    ARRAY['first', 'last', 'age'],
    ARRAY['Bob', 'Smith', '35']
  ) AS user UNION ALL
  SELECT MAP(
    ARRAY['first', 'last', 'age'],
    ARRAY['john', 'doe', '12']
  ) AS user
)
SELECT user FROM dataset WHERE CAST(user['age'] AS bigint) > 20

所以答案就是我在示例中所问的!哈哈

WHERE map[key] <operator> <value>

而且键
test
不存在,这将返回0行。

@jarlh我更新了我的问题。Athena或Postgresql将是greatPostgres没有“映射”数据类型,但如果列是a
json
jsonb
,则可以使用
where(the_column->>“key”)::int>=42
SELECT user FROM dataset WHERE CAST(user['test'] AS bigint) > 20