使用OPENJSON统计每行ID对应JSON数组中的联系人数量
统计JSON数组内联系人数量的SQL实现
针对你的需求,用OPENJSON解析JSON数组,结合CROSS APPLY关联原表,再分组统计即可实现。假设你的表名为YourTable,具体SQL语句如下:
SELECT t.Id, COUNT(j.contact_id) AS ContactCount, CONCAT(t.Id, ': ', COUNT(j.contact_id)) AS FormattedOutput FROM YourTable t CROSS APPLY OPENJSON(t.JsonData, '$.contacts') WITH ( contact_id NVARCHAR(MAX) '$.id' ) j GROUP BY t.Id ORDER BY t.Id;
代码说明:
OPENJSON(t.JsonData, '$.contacts'):指定解析JsonData字段中路径为$.contacts的JSON数组WITH子句:提取数组内每个对象的id字段,命名为contact_idCROSS APPLY:将原表的每一行与解析出的联系人记录进行关联GROUP BY t.Id:按原表的Id分组,用COUNT统计每组的联系人数量CONCAT:生成你需要的Id: 数量格式的输出
示例输出:
| Id | ContactCount | FormattedOutput |
|---|---|---|
| 1234 | 2 | 1234: 2 |
内容的提问来源于stack exchange,提问作者im-devops
相关产品推荐
相关产品推荐

