select
--将json后面的值相加
arraySum(arrayMap(x -> x.2, JSONExtractKeysAndValues(concat('{"x":',extra_tag2, '}'), 'x','Int8'))) sum,
--将json前面大于180000的后面的值相加
arraySum(arrayMap(x -> x.2, arrayFilter(f -> toInt64(f.1) > 180000, JSONExtractKeysAndValues(concat('{"x":',extra_tag2, '}'), 'x','Int64')))) m3,
extra_tag2
from table
有时候,数据库中的某个字段内容可能是json字符串
但是对json串进行计算的时候SQL就比较难写,经过多次尝试,发现了这个复杂的SQL语法可以满足需求。
执行结果如图: