В amount_text суммы записаны как текст, но иногда встречается пустая строка ''. Запрос SUM(CAST(amount_text AS int)) падает. Какое выражение чаще всего решает проблему, превращая пустые строки в NULL перед кастом?

ASUM(amount_text)
BSUM(CAST(NULLIF(TRIM(amount_text), '') AS int))
CSUM(TRIM(amount_text))
DSUM(LOWER(amount_text))
Правильный ответ. Перед кастом удобно превращать пустые строки в NULL через NULLIF и убирать пробелы через TRIM.

Разбор

Каст CAST('' AS int) обычно приводит к ошибке. Частый паттерн для аналитики — сначала очистить значение TRIM(...), затем заменить пустую строку на NULL через NULLIF(..., ''), и только потом приводить тип. Так агрегации вроде SUM(...) становятся устойчивее к «грязным» данным.

Проверь себя · 1/3разбор после ответа
В таблице events поле event_date_text хранит дату как текст в формате YYYY-MM-DD. Вы хотите считать метрики по неделям и использовать функции дат. Что логичнее сделать в запросе?
Тренировать SQL в Telegram

Ещё вопросы по теме «Строки и приведение типов»