【发布时间】:2023-03-10 16:39:01
【问题描述】:
我创建了新表并将详细信息作为 JSON 数据类型。我试图得到所有记录的总和。我可以获取每个值,但我不知道如何使用 group by 选项获取总和。
CREATE TABLE `Sample` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`details` json DEFAULT NULL,
PRIMARY KEY (`id`)
) CHARSET=latin1;
样本数据
1. [{"id": 1, "name": "T1", "amount": "34.34", "percentage": "45"}, {"id": 3, "name": "T3", "amount": "30.34", "percentage": "45"}, {"id": 2, "name": "T2", "amount": "14.34", "percentage": "15"}]
2. [{"id": 1, "name": "T1", "amount": "34.34", "percentage": "45"}, {"id": 2, "name": "T2", "amount": "30.34", "percentage": "45"}, {"id": 4, "name": "T4", "amount": "14.34", "percentage": "15"}]
我想要这 2 条记录的聚合组
输出数据
[{"id": 1, "name": "T1", "amount": "68.68", "percentage": "45"}, {"id": 3, "name"`enter code here`: "T3", "amount": "30.34", "percentage": "45"}, {"id": 2, "name": "T2", "amount": "44.68", "percentage": "60"}, {"id": 4, "name": "T4", "amount": "14.34", "percentage": "15"}]
我尝试使用 JSON_EXTRACT(details, "$[*]") 但没有成功
【问题讨论】:
-
OFF-TOPIC:有原因吗,你为什么使用 json 数据类型?
-
我将其保留为文本类型,但我不知道如何根据 JSON 键进行聚合