gpt4 book ai didi

sql - 在 Postgresql 中查找 JSON 中具有最高值的对象

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

假设我们在数据库中有几个具有属性 data 的对象,其中属性 data 包含:{'gender' => {'male' => 40.0, '女性'=> 30.0 => '未定义'=> 30.0}}

我只想找到这些具有最高 gender => male 值的对象。

PostgreSQL 9.5

最佳答案

假设我正确理解您的问题(示例输入/输出会很有用):

WITH jsons(id, j) AS (
VALUES
(1, '{"gender": {"male": 40.0, "female": 30.0, "undefined": 30.0}}'::json),
(2, '{"gender": {"male": 40.0, "female": 30.0, "undefined": 30.0}}'),
(3, '{"gender": {"male": 0.0, "female": 30.0, "undefined": 30.0}}')
)
SELECT id, j
FROM jsons
WHERE (j->'gender'->>'male') :: float8 = (
SELECT MAX((j->'gender'->>'male') :: float8)
FROM jsons
)
;
┌────┬───────────────────────────────────────────────────────────────┐
│ id │ j │
├────┼───────────────────────────────────────────────────────────────┤
│ 1 │ {"gender": {"male": 40.0, "female": 30.0, "undefined": 30.0}} │
│ 2 │ {"gender": {"male": 40.0, "female": 30.0, "undefined": 30.0}} │
└────┴───────────────────────────────────────────────────────────────┘
(2 rows)

关于sql - 在 Postgresql 中查找 JSON 中具有最高值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40784995/

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