Data Analyst Professional · Модуль 3 · Урок 9 із 51

SELECT: явна вибірка, aliases і обчислювані поля

SELECT формує структуру результату. Професійний запит повертає лише потрібні колонки, дає зрозумілі назви обчисленням, зберігає одиниці виміру й не маскує дублікати через необдуманий DISTINCT.

75–90 хвProjectionМінітест: 3 питання

Мінімальний читабельний запит

SELECT order_id, customer_id, order_ts, net_amount FROM analytics.orders;

Явний список колонок показує контракт результату, зменшує зайві дані й не ламається семантично, коли до source додають нові поля. SELECT * доречний лише для короткого контрольованого огляду, не для production-звіту.

Порядок логічного читання

1

FROM

Визначає source і його grain. Поки JOIN немає, рядки походять з однієї таблиці.

2

SELECT

Обирає поля й вирази, які побачить користувач результату.

3

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 має пояснювати результат

СлабкоКращеЧому
xgross_amountвидно значення і одиницю
dateorder_dateне плутається з load_date
countorder_row_countне видає рядки за унікальні замовлення
price2net_unit_priceназва фіксує трансформацію

DISTINCT — сигнал, а не ремонт

SELECT DISTINCT прибирає повністю однакові рядки з результату. Він не пояснює, чому вони виникли, і може приховати неправильний grain або майбутню помилку JOIN.

Спершу expected grain

Запишіть, що має бути унікальним у результаті.

Потім діагностика

Порахуйте повтори ключа й подивіться суперечливі поля.

Далі правило

Визначте, чи це дубль, історія, кілька подій або коректний one-to-many.

Лише потім dedup

Застосуйте явне правило вибору рядка в контрольованому етапі.

Практика: контракт результату

  • Напишіть SELECT із 5–7 явними колонками без *.
  • Додайте два обчислювані поля та змістовні aliases.
  • Підпишіть grain, currency і NULL-policy.
  • Порівняйте count rows і count distinct expected key.
  • Якщо потрібен DISTINCT, спочатку задокументуйте причину повторів.

Офіційні довідки

Готовність до тесту

Ви розумієте projection, уникаєте необґрунтованого SELECT *, називаєте вирази й не використовуєте DISTINCT для приховування невідомої причини дублів.

Практична перевірка · урок 9 з 51

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Що визначає список після SELECT?
2. Чому явний список колонок кращий за SELECT * у звіті?
3. Для чого потрібен alias обчислюваного поля?