如果之前有人问过这个问题,我很抱歉。我是 SQL 新手,一直在尝试寻找答案但无济于事。
我有一个看起来像这样的数据集:
代码 | 总计 |
---|---|
1,2,3 | 4 |
5 | 6 |
5,7 | 8 |
“Codes”是一个 varchar 列。
我想创建一个查询,如果“代码”包含数组中的任何一个值,它允许我聚合“总计”。
类似这样的:
SELECT SUM(total)
FROM table
WHERE (codes) = ANY('5','7')
在这种情况下,SUM 应为 14。
适当的查询应该是什么?任何帮助将不胜感激!
你很接近了。您可以使用字符串匹配
~
与 ANY
数组比较,几乎与您已经尝试过的一样:SELECT SUM(total)
FROM test
WHERE codes ~ ANY(array['5','7'])