Для MySQL я хочу запрос, который возвращает SUM выражения, за исключением того, что я хочу, чтобы возвращаемое значение было NULL, если любое из выражений, включенных в SUM, равно NULL. (Обычная операция SUM - игнорировать значения NULL.
Вот простой тестовый пример, который иллюстрирует
CREATE TABLE t4 (fee VARCHAR(3), fi INT);
INSERT INTO t4 VALUES ('fo',10),('fo',200),('fo',NULL),('fum',400);
SELECT fee, SUM(fi) AS sum_fi FROM t4 GROUP BY fee
Это возвращает именно тот результат, который я ожидаю:
fee sum_fi
--- ------
fo 210
fum 400
Мне нужен запрос, который возвращает РАЗНЫЙ набор результатов:
fee sum_fi
--- ------
fo NULL
fum 400
Я хочу, чтобы значение, возвращаемое для sum_fi, было равно NULL, если включенное значение равно NULL. (Это отличается от агрегатной функции SUM, которая игнорирует NULL и возвращает сумму для выражений, отличных от NULL.)
Вопрос: Какой запрос я могу использовать для возврата желаемого набора результатов?
Я не нашел ни одной встроенной агрегатной функции, которая бы демонстрировала такое поведение.