Нужно ли делать алиас, если он совпадает с названием таблицы
Что проверяют
Аккуратность в длинных аналитических запросах и понимание, что алиас меняет способ обращения к данным, а не только внешний вид текста. Заодно смотрят, различаете ли вы алиас таблицы и алиас колонки, это разные истории.
Как отвечать
Прямой ответ: алиас, повторяющий имя таблицы, избыточен, from events events не добавляет ничего. Полезны короткие осмысленные алиасы, когда таблиц больше одной: u, ev, pay читаются лучше, чем t1 и t2, и лучше, чем полные имена в запросе на страницу.
Назовите случаи, когда алиас обязателен: подзапрос в from, соединение таблицы с самой собой, одинаковые имена колонок в нескольких таблицах. Для аналитика не менее важны алиасы колонок: без as у агрегата колонка приедет с именем count, а два агрегата в одном запросе дадут две одноимённые колонки, и выгрузка в таблицу или в датафрейм молча потеряет одну из них.
Второе правило по частоте ошибок это область видимости. Алиас из select нельзя использовать в where, потому что фильтр вычисляется раньше списка выборки. Выражение либо повторяют, либо выносят в CTE, что для длинных витрин обычно и правильнее.
with daily as (
select date_trunc('day', created_at) as day, count(*) as orders
from orders
group by 1
)
select * from daily where orders > 100;Где спотыкаются
Задают алиас и продолжают ссылаться на таблицу по полному имени. В PostgreSQL это ошибка разбора, и на скрининге её показывают именно так, одной строкой.
Второе: оставляют агрегаты без имени или дают одинаковые имена двум колонкам. Запрос выполняется, а выгрузка, дашборд или pandas получают колонку count и дубль, и разбираться приходится уже в отчёте.
Третье: группируют по номерам, group by 1, 2, и потом вставляют колонку в середину списка выборки. Запрос остаётся валидным, но группировка тихо меняется, а цифры в отчёте перестают сходиться.