doumu9799 2018-05-08 23:06
浏览 135
已采纳

postgresql - 范围日期的JSON查询

I have data json like this

{"2018-05": /*year-month*/ {"20": /*date*/{"price": 50, "stock": 12}, "21":/*date*/{"price": 60, "stock": 5}, "25": /*date*/{"price": 55, "stock": 0}  }}

how I can make query for range between 2 date and stock more than 0?

sorry for My bad English

  • 写回答

1条回答 默认 最新

  • doumuyu0837 2018-05-08 23:26
    关注

    I assume you are trying to do smth like:

    t=# with c(j) as (values('{"2018-05":{"20":{"price":50,"stock":12},"21":{"price":60,"stock":5},"25":{"price":55,"stock":0}}}'::json))
    , s as (select j,json_object_keys(j->'2018-05') k from c)
    select j->'2018-05'->k from s
    where k::int between 20 and 22
    and (j->'2018-05'->k->>'stock')::int > 0;
            ?column?
    -------------------------
     {"price":50,"stock":12}
     {"price":60,"stock":5}
    (2 rows)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 STM32悬赏求解答,ai不要来解答
  • ¥15 Mysql 一张表同时多人查询和插入怎么防止死锁
  • ¥20 centos6.7 安装libevent库.总是报错,如何解决?
  • ¥15 电脑买回,学校的有线网络总掉。
  • ¥20 关于普洛菲斯触摸屏与AB连接地址问题
  • ¥15 syri可视化不显示插入缺失
  • ¥30 运行软件卡死查看系统日志分析不出来
  • ¥15 C语言代码改正特征选择算法设计,贝叶斯决策,,设计分类器,远程操作代码修正一下
  • ¥15 String 类valuve指向的问题
  • ¥15 在ros2的iron版本进行编译时遇到如下问题
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部