sql - 简单的 jsonb_agg ORDER BY

标签 sql json postgresql

我刚刚开始使用 postgres,我已经设置了最简单的 jsonb 查询。它会运行,但不会对 json 对象进行排序。

SELECT jsonb_agg(info ORDER BY info->'rating' DESC) FROM movies;

数据看起来像什么:

{
    "movie_card": {
        "cast": [
            { "actor": "Sam Worthington" },
            { "actor": "Zoe Saldana" },
            { "last": true, "actor": "Sigourney Weaver" }
        ],
        "name": "OKmovieee",
        "rating": 5,
        "writer": "James Bagel",
        "director": "James Bagel"
    }
}

知道有什么问题吗?这是最奇怪的事情,因为我之前有以下查询:

SELECT jsonb_agg(info) FROM movies ORDER BY rating DESC;

但是由于我已经删除了对象并重新创建了它们,所以该查询不起作用(不知道评级是什么)。

最佳答案

SELECT jsonb_agg(info ORDER BY info->'movie_card'->'rating' DESC) FROM movies;

关于sql - 简单的 jsonb_agg ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54965156/

相关文章:

Oracle 中的 SQL 路由查找器 - 递归?

c# - 如何将日期时间插入时间(0)字段

javascript - 解析格式正确的 json 字符串

ruby-on-rails - 在具有可变间隔的日期之间搜索 w/rails

postgresql - 使用 :jsonb ? & 运算符时查询变得非常慢

mysql - 为什么 SQL 查询的结果没有按我期望的顺序返回?

sql - 如何查询过去 12 个月的平均值

mysql - 在相互引用的表中使用外键的正确方法是什么

json - 传递 JSON 字符串来创建标签 React.createelement

php - 您在哪些特定情况下使用 JSON 而不是 XML?