doumu9799 2018-05-09 07: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-09 07: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 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持