
Просунутий SQL для Data Engineering
Window functions, рекурсивні CTE, аналітичні запити, оптимізація, EXPLAIN ANALYZE, індексація, партиціювання
1Яка window function присвоює унікальний послідовний номер кожному рядку в межах партиції?
Яка window function присвоює унікальний послідовний номер кожному рядку в межах партиції?
Відповідь
ROW_NUMBER() присвоює унікальний послідовний номер кожному рядку в межах партиції, починаючи з 1. На відміну від RANK() та DENSE_RANK(), які можуть присвоювати однаковий номер однаковим значенням, ROW_NUMBER() завжди гарантує унікальні номери, навіть для ідентичних значень у клаузі ORDER BY.
2У чому головна відмінність між RANK() та DENSE_RANK()?
У чому головна відмінність між RANK() та DENSE_RANK()?
Відповідь
RANK() залишає пропуски в нумерації після рівних значень. Наприклад, якщо два рядки мають ранг 1, наступний матиме ранг 3. DENSE_RANK() не залишає пропусків: після двох рядків з рангом 1 наступний матиме ранг 2. Це розрізнення важливе для аналізу рейтингів, де пропуски можуть спотворювати статистику.
3Як обчислити накопичувальну суму (running total) за допомогою window function?
Як обчислити накопичувальну суму (running total) за допомогою window function?
Відповідь
SUM() OVER з ORDER BY без явного фрейму за замовчуванням використовує ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, що обчислює суму всіх попередніх рядків до поточного рядка включно. Це стандартна поведінка для створення накопичувальних сум у часових рядах або послідовних аналізах.
Яка роль клаузи PARTITION BY у window function?
Яка функція дозволяє отримати доступ до значення попереднього рядка у window function?
+17 питань зі співбесід
Інші теми співбесід Data Engineering
Linux & Shell - Основи
Git & GitHub - Основи
Просунутий Python для Data Engineering
Docker - Основи
Google Cloud Platform - Основи
CI/CD та якість коду
Docker Compose
FastAPI - API даних
Data Lake - Архітектура та завантаження даних
BigQuery для Data Engineering
PostgreSQL - Адміністрування
Data Modeling для Data Engineering
Fivetran & Airbyte - Завантаження даних
dbt - Основи
Apache Airflow - Основи
Kubernetes - Основи
dbt - Розширені можливості
Патерни ETL / ELT / ETLT
Apache Airflow - Просунутий
Airflow + dbt - Оркестрація пайплайнів
PySpark - Великомасштабна обробка
Google Pub/Sub - Стрімінг даних
Apache Beam & Dataflow
Kubernetes - Продакшн та масштабування
Terraform - Infrastructure as Code
Бази даних NoSQL
Сучасна Data Architecture
Моніторинг та спостережуваність
IAM та безпека даних
Опануй Data Engineering для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно