【问题标题】:Use oracle to count json in clob column [duplicate]使用oracle计算clob列中的json [重复]
【发布时间】:2020-11-04 14:14:40
【问题描述】:

给定:

 t_user
   ID (NUMBER)
   USERNAME (VARCHAR2)
   JSON_DATA (CLOB)

JSON_DATA 包含 JSON 结构:

ID | username | JSON_DATA
1  | example  | {"hobbies": ["football", "climbing"]}
1  | example  | {"hobbies": ["football", "tennis"]}

我如何进行 oracle 选择,它计算分组的爱好:

football: 2
climbing: 1
tennis: 1

我知道有 json_table、json_value 和 json_array 之类的东西。 也许有人可以告诉我如何用这种新的 oracle 语法写这个。

【问题讨论】:

    标签: sql arrays json oracle count


    【解决方案1】:

    你可以使用json_table():

    select j.hobby, count(*) cnt
    from t_user u
    cross apply json_table(
        u.json_data, 
        '$.hobbies[*]' columns (hobby varchar2(50) path '$')
    ) j
    group by j.hobby
    

    Demo on DB Fiddle

    爱好 |碳纳米管 :------- | --: 攀爬| 1 足球 | 2 网球 | 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2017-01-13
      • 1970-01-01
      相关资源
      最近更新 更多