MySQL 中的 SUM,其中该列有两个值“{”Population”:1780000}”

问题描述 投票:0回答:1

正如标题所说,在提供给我的表格中,我正在尝试制作报告,结果显示为 0。

我一直在寻找一种有效的方法,我最初的尝试是尽可能基本的:

SELECT SUM(info) 
FROM CITY
WHERE countrycode = 'AUS'

这是为了从表的信息列中获取总和,其中输入了标题中的数据,{“人口”:1780000},虽然在一列中有两个值是理想的,但我需要解决这个问题但遇到了困难。

我尝试过使用 find_in_set 但很难弄清楚它应该如何措辞,并且我找不到任何资源来解决其中包含单词和数字的问题,以及如何正确查询所有值的总和有了这个,尽管有 14 个条目在信息列中都有一个数字,但它不会显示为 0。

对于我已经尝试过的,如上所述,基本总和计数,然后我尝试格式化 find_in_set 命令,我无法弄清楚如何仅查询它的数字,作为示例,我一直在寻找主要用于设置的东西,例如作为一种颜色,而不是需要相加得出总数且每个条目各不相同的数值。

每次我都期望得到“信息列”中 14 个条目的数值总和,而不是 0 值。

编辑:行的示例文本以及我正在使用的数据的呈现方式。

enter code here

|info|
|---------------------|
|{"Population": 99862}|
|{"Population": 9968485}|
|{"Population": 99669}|
|{"Population": 99578}|
|{"Population": 99387}|
mysql sum
1个回答
0
投票

假设您的信息列是有效的 JSON,您可以使用

column-path operator ->
:

SELECT SUM(info->'$.Population')
FROM CITY
WHERE countrycode = 'AUS';

这是一个db<>小提琴

© www.soinside.com 2019 - 2024. All rights reserved.