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 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块