В отчёте по городам вы делаете агрегацию по city, но видите две строки: Moscow и Moscow (с пробелом в конце). Как исправить это прямо в запросе?
AИспользовать
TRIM(city) и группировать по нему: SELECT TRIM(city) ... GROUP BY TRIM(city)BПривести значение к числу через
CAST(city AS int): приведение типа автоматически удалит лишние пробелы по краямCСравнивать значение через
LIKE 'Moscow': оператор сам игнорирует пробелы в конце строки городаDДобавить
LIMIT 1 в конец запроса: в результат попадёт только одна строка с городом из двух одинаковыхПравильный ответ. Лишние пробелы часто убирают через
TRIM, особенно перед GROUP BY и JOIN.Разбор
Пробелы в начале или конце строки — частый «мусор» в данных. При GROUP BY такие значения считаются разными, поэтому появляются дубликаты групп. TRIM нормализует строку и делает агрегацию корректной без ручной чистки таблицы.
Проверь себя · 1/3разбор после ответа
У вас есть таблицы
users(email) и marketing_signups(email). В одной системе email сохраняется как Ivan@Example.com, в другой — ivan@example.com. Какой подход в JOIN чаще всего решает проблему без изменения данных в таблицах?Ещё вопросы по теме «Строки и приведение типов»
- У вас есть таблицы `users(email)` и `marketing_signups(email)`. В одной системе email сохраняется как `Ivan@Example.com`, в другой — `ivan@example.com`. Какой подход в `JOIN` чаще всего решает проблему без изменения данных в таблицах?
- В таблице `products` категория хранится как `Books`, `books`, `BOOKS`. Нужно одним условием в `WHERE` отобрать все варианты категории «книги». Какой фильтр наиболее надёжен?
- Поле `price_text` хранит цены как текст: `2`, `10`, `100`. Аналитик написал `WHERE price_text > '10'` и получил неожиданный набор строк. Как сделать сравнение числовым?
- В `amount_text` суммы записаны как текст, но иногда встречается пустая строка `''`. Запрос `SUM(CAST(amount_text AS int))` падает. Какое выражение чаще всего решает проблему, превращая пустые строки в `NULL` перед приведением типа?
- В таблице `customers` поле `lifetime_value_text` хранится как текст. Сортировка `ORDER BY lifetime_value_text DESC` даёт `100` раньше `20`. Как получить корректный порядок по величине выручки?
- Все вопросы по «Строки и приведение типов» →