我正在创建一个PostgreSQL查询,以解决以下情况:
- 我有一个数据类型为jsonb的列。
- 在此列中,有一个包含两个属性的数据对象:labels和number。例如:“data”:{“label”:“SOME_LABEL”,“number”:1}。
- 目标是对所有具有相同“标签”的记录的“编号”属性求和。
- 例如:
- 记录1:列信息->“data”:{“label”:“SOME_LABEL_1”,“number”:1}
- 记录2:列信息->“data”:{“label”:“SOME_LABEL_2”,“number”:1}
- 记录3:列信息->“data”:{“label”:“SOME_LABEL_1”,“number”:80}
- 记录4:列信息->“data”:{“label”:“SOME_LABEL_2”,“number”:10}
- 记录5:列信息->“data”:{“label”:“SOME_LABEL_3”,“number”:1}
- 求和后,结果需要按具有最高总“数”值的“标签”排序。
- 所需的输出如下所示:
- 第1行:标签:“SOME_LABEL_1”,总和:81
- 第2行:标签:“SOME_LABEL_2”,总和:11
- 第3行:标签:“SOME_LABEL_3”,总和:1
我将非常感谢您在这件事上提供的任何帮助。
1条答案
按热度按时间42fyovps1#
您可以使用以下查询获得所需的结果:
字符串
按“label”分组,取“number”的和,然后选择和最大的记录