SQLite JSON 查询以计算嵌套列表中的项目数

SQLite JSON query to count number of items in nested list

我正在尝试查询其中一列包含 JSON 数据的数据库。我正在使用 python 和 json1 扩展将查询拉入我的 python 代码。

下面是数据库 json 中的数据示例。

    "perf": {
        "timestamp": 1575933555,
        "frame": 0,
        "type": "BEST",
        "azimuth": 0
    },
    "dots": [{
        "a": -1.6,
        "b": -6.4,
        "c": -0.1,
        "int": 72
    }, {
        "a": -1.9,
        "b": -6.4,
        "c": 0.0,
        "int": 60
    }]
}

我正在尝试计算 "dots" 嵌套列表中的项目数。在这种情况下有两个,尽管可能更多或更少取决于行中的数据。

SELECT COUNT(json_extract(json, ("$.dots"))) FROM json_database;

Returns 数据库中的总行数。它不会深入 "dots" 列表来计算项目的数量。尝试索引 $.dots[i] 也不会 return 元素总数。

如何计算嵌套列表中的项目总数作为 sqlite 查询?

您没有在文档中看到 json_array_length()。试试这个:

SELECT json_array_length(json, '$.dots') AS count
FROM json_database;