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

kqqjbcuj  于 2024-01-05  发布在  Mysql
关注(0)|答案(1)|浏览(180)

正如标题所说,在提供给我的一个表格中,我试图制作一份报告,结果显示为0。
我一直在寻找一种有效的方法,我最初的尝试是尽可能基本的:

  1. SELECT SUM(info)
  2. FROM CITY
  3. WHERE countrycode = 'AUS'

字符串
这是为了从表格的信息列中获得总和,其中它具有在标题中输入的数据,{“Population”:1780000},虽然在单个列中有两个值是理想的,但我需要解决这个问题,但遇到了一堵砖墙。
我试过使用find_in_set,但我很难弄清楚它应该如何措辞,我找不到任何资源来讨论其中包含单词和数字的问题,以及如何正确查询所有值的总和,并且尽管有14个条目在信息列中都有一个数字,但它不会显示为0。
对于我已经尝试过的,如上所述的基本总和计数,然后我尝试格式化find_in_set命令,我无法弄清楚如何只查询数字,作为示例,我一直在寻找主要用于设置的东西,例如颜色,而不是需要加总的数值,并且每个条目都不同。
每次我都期望得到14个条目的“信息列”中数值的总和,而不是0值。
编辑:行的示例文本以及我正在使用的数据是如何呈现的。

  1. enter code here
  2. |info|
  3. |---------------------|
  4. |{"Population": 99862}|
  5. |{"Population": 9968485}|
  6. |{"Population": 99669}|
  7. |{"Population": 99578}|
  8. |{"Population": 99387}|

icomxhvb

icomxhvb1#

假设你的信息列是有效的JSON,你可以使用column-path operator ->

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

字符串
这里有一个db<>fiddle

相关问题