我正在使用如下格式的表格:
- 数字 |国家/地区
- 5 |德国、美国、中国
- 1 |德国、中国、日本
- 4 |中国、印度、巴西
- 3 |尼日利亚
- 8 |巴西
我有另一个表,其中只有国家/地区:
- 国家/地区 |
- 德国 |
- 中国 |
- 巴西 |
- 印度 |
- 尼日利亚 |
- 美国 |
- 日本 |
现在我想根据国家/地区对 NUMBER 进行求和,因此输出将类似于:
- 国家/地区 |总和
- 德国 | 6 <5 + 1>
- 中国 | 5 <1 + 4>
- 巴西 | 12
- 印度 | 4
- 尼日利亚 | 3
- 美国 | 5
- 日本 | 1
实际的表有更多的列,每个表有 5000 多个条目。
我的逻辑是从第二个表中选择每个国家,并对第一个表的第二列进行“LIKE”操作并汇总匹配数,但我不太确定如何实现这一点。任何指导表示赞赏。
最佳答案
您可以使用 like 运算符进行连接和聚合函数 sum 来获取每个国家/地区的总计。
SELECT C.Country, SUM(CN.Number)
FROM Table1 CN
INNER JOIN Table2 C ON CN.Country LIKE CONCAT('%', C.Country,'%')
GROUP BY C.Country
关于mysql - 如何根据列中的子字符串进行聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55527954/