gpt4 book ai didi

sql - 如何在包含 json 数据的 postgresql 列中找到最小值?

转载 作者:行者123 更新时间:2023-11-29 12:18:14 26 4
gpt4 key购买 nike

我在 postgres 数据库中有一个表 t。它有一个 data 列,其中包含以下格式的 jsonb 数据(对于每条记录)-

{
"20161214": {"4": ["3-14", "5-16", "642"], "9": ["3-10", "5-10", "664"] },
"20161217": {"3": ["3-14", "5-16", "643"], "7": ["3-10", "5-10", "661"] }
}

其中20161214是日期,"4"是月份,642是金额。

我需要找到表中每条记录的最小金额以及该金额所属的月份。

我尝试过的:

使用 jsonb_each 函数分离键值对,然后使用 min 函数。但我仍然无法获取它所属的月份。

如何实现?

最佳答案

select  j2.date
,j2.month
,j2.amount

from t

left join lateral

(select j1.date
,j2.month
,(j2.value->>2)::numeric as amount

from jsonb_each (t.data) j1 (date,value)

left join lateral jsonb_each (j1.value) j2 (month,value)
on true

order by amount

limit 1
) j2

on true

+----------+-------+--------+
| date | month | amount |
+----------+-------+--------+
| 20161214 | 4 | 642 |
+----------+-------+--------+

关于sql - 如何在包含 json 数据的 postgresql 列中找到最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41236191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com