Data Analyst Professional · Модуль 3 · Урок 9 із 51
SELECT: явна вибірка, aliases і обчислювані поля
SELECT формує структуру результату. Професійний запит повертає лише потрібні колонки, дає зрозумілі назви обчисленням, зберігає одиниці виміру й не маскує дублікати через необдуманий DISTINCT.
Мінімальний читабельний запит
SELECT
order_id,
customer_id,
order_ts,
net_amount
FROM analytics.orders;Явний список колонок показує контракт результату, зменшує зайві дані й не ламається семантично, коли до source додають нові поля. SELECT * доречний лише для короткого контрольованого огляду, не для production-звіту.
Порядок логічного читання
FROM
Визначає source і його grain. Поки JOIN немає, рядки походять з однієї таблиці.
SELECT
Обирає поля й вирази, які побачить користувач результату.
Alias
Надає зрозуміле ім’я колонці або таблиці, не змінюючи source.
Обчислювані поля і одиниці
SELECT
order_id,
quantity,
unit_price,
discount_amount,
quantity * unit_price AS gross_amount,
quantity * unit_price - discount_amount AS net_before_tax
FROM analytics.order_items;Перед арифметикою зафіксуйте currency, tax treatment, sign convention і NULL-policy. Якщо discount_amount може бути NULL, результат арифметики також стане NULL — це не завжди бажане бізнес-правило.
Alias має пояснювати результат
| Слабко | Краще | Чому |
|---|---|---|
| x | gross_amount | видно значення і одиницю |
| date | order_date | не плутається з load_date |
| count | order_row_count | не видає рядки за унікальні замовлення |
| price2 | net_unit_price | назва фіксує трансформацію |
DISTINCT — сигнал, а не ремонт
SELECT DISTINCT прибирає повністю однакові рядки з результату. Він не пояснює, чому вони виникли, і може приховати неправильний grain або майбутню помилку JOIN.
Запишіть, що має бути унікальним у результаті.
Порахуйте повтори ключа й подивіться суперечливі поля.
Визначте, чи це дубль, історія, кілька подій або коректний one-to-many.
Застосуйте явне правило вибору рядка в контрольованому етапі.
Практика: контракт результату
- Напишіть SELECT із 5–7 явними колонками без
*. - Додайте два обчислювані поля та змістовні aliases.
- Підпишіть grain, currency і NULL-policy.
- Порівняйте count rows і count distinct expected key.
- Якщо потрібен DISTINCT, спочатку задокументуйте причину повторів.
Офіційні довідки
Готовність до тесту
Ви розумієте projection, уникаєте необґрунтованого SELECT *, називаєте вирази й не використовуєте DISTINCT для приховування невідомої причини дублів.
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.