Я изначально добавил это в комментарий, но я уверен, что это требуемый ответ.
Либо:
Вы применяете свой sum
к нечисловому c столбец, который вызывает проблемы, которые могут быть решены только путем очистки данных.
Ваш столбец b.creative_id
не является типом данных int
и нарушает неявное преобразование, созданное вашим and (b.creative_id is not null and b.creative_id <> 0)
сравнением с int
значение 0
. Это можно исправить, используя вместо этого '0'
.
Или общее значение вашего sum
больше, чем может обработать тип данных int
(2,147,483,647
). Чтобы исправить это, преобразуйте значения int
в значения bigint
перед передачей их в sum
, чтобы sum
возвращал тип данных bigint
, который может содержать результирующее значение:
,sum(cast(a.impressions as bigint)) as cpi_imps
,sum(cast(a.clicks as bigint)) as cpi_clicks