【问题标题】:Get specific values from JSON column in Presto从 Presto 中的 JSON 列获取特定值
【发布时间】:2017-11-30 23:03:39
【问题描述】:

我有一个带有 JSON 列 points 的表,其中一行为:

{"0": 0.2, "1": 1.2, "2": 0.5, "15": 1.2, "20": 0.7}

我想获取键 "1""20" 的值,并将它们作为别名存储在查询中,例如 firstsecond。到目前为止我所做的是:

SELECT points, k, v from rewards CROSS JOIN UNNEST(SPLIT_TO_MAP(points, ',', ':')) AS m(k,v) where name='John'

但是这个查询给了我所有的 k,v 行。我如何只选择对应于“1”和“20”的那两个值?

【问题讨论】:

    标签: sql database computer-science presto


    【解决方案1】:

    JSON_EXTRACT_SCALAR 成功了。

    JSON_EXTRACT_SCALAR(points, '$["1"]') AS first_value

    JSON_EXTRACT_SCALAR(points, '$["20"]') AS second_value

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 2017-11-22
      • 2017-09-19
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多