Похоже, вы ищете условный sum
. Logi c должен поместить выражение case
в агрегатную функцию, например:
select
sum(case when "2020" < 0 then "2020" else 0 end) result_2020,
sum(case when "2021" < 0 then "2021" else 0 end) result_2021
from mytable
Довольно необычно иметь столбцы с именами, состоящими из цифр, такими как 2020
, поэтому я Интересно, является ли то, что вы показываете, фактическими данными выборки или результатами промежуточного запроса (в этом случае возможны дальнейшие оптимизации).
Изменить
Вышеупомянутый ответ отвечает на исходную версию вопроса. Это отвечает на отредактированный вопрос:
Вы можете использовать выражение case
, чтобы преобразовать положительные числа для даты 2021
в 0
:
select
fab,
date,
case when output > 0 and date = 2021
then 0
else output
end output
from mytbale