
Zaawansowany SQL dla Data Engineering
Window functions, rekurencyjne CTE, zapytania analityczne, optymalizacja, EXPLAIN ANALYZE, indeksowanie, partycjonowanie
1Która window function przypisuje unikalny numer sekwencyjny każdemu wierszowi w partycji?
Która window function przypisuje unikalny numer sekwencyjny każdemu wierszowi w partycji?
Odpowiedź
ROW_NUMBER() przypisuje unikalny numer sekwencyjny każdemu wierszowi w partycji, zaczynając od 1. W przeciwieństwie do RANK() i DENSE_RANK(), które mogą przypisać ten sam numer równym wartościom, ROW_NUMBER() zawsze gwarantuje unikalne numery, nawet dla identycznych wartości w klauzuli ORDER BY.
2Jaka jest główna różnica między RANK() a DENSE_RANK()?
Jaka jest główna różnica między RANK() a DENSE_RANK()?
Odpowiedź
RANK() pozostawia luki w numeracji po wartościach remisowych. Na przykład, jeśli dwa wiersze mają rangę 1, następny otrzyma rangę 3. DENSE_RANK() nie pozostawia luk: po dwóch wierszach z rangą 1, następny otrzyma rangę 2. To rozróżnienie jest ważne dla analiz rankingowych, gdzie luki mogą zniekształcać statystyki.
3Jak obliczyć sumę narastającą (running total) za pomocą window function?
Jak obliczyć sumę narastającą (running total) za pomocą window function?
Odpowiedź
SUM() OVER z ORDER BY bez jawnego frame'a domyślnie używa ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, co oblicza sumę wszystkich poprzedzających wierszy do bieżącego wiersza włącznie. Jest to standardowe zachowanie do tworzenia sum narastających w analizach szeregów czasowych lub sekwencyjnych.
Jaka jest rola klauzuli PARTITION BY w window function?
Która funkcja pozwala uzyskać dostęp do wartości poprzedniego wiersza w window function?
+17 pytań z rozmów
Inne tematy rekrutacyjne Data Engineering
Linux & Shell - Podstawy
Git & GitHub - Podstawy
Zaawansowany Python dla Data Engineering
Docker - Podstawy
Google Cloud Platform - Podstawy
CI/CD i jakość kodu
Docker Compose
FastAPI - API danych
Data Lake - Architektura i wprowadzanie danych
BigQuery dla Data Engineering
PostgreSQL - Administracja
Data Modeling dla Data Engineering
Fivetran & Airbyte - Pozyskiwanie danych
dbt - Podstawy
Apache Airflow - Podstawy
Kubernetes - Podstawy
dbt - Zaawansowane funkcje
Wzorce ETL / ELT / ETLT
Apache Airflow - Zaawansowany
Airflow + dbt - Orkiestracja pipeline'ów
PySpark - Przetwarzanie na dużą skalę
Google Pub/Sub - Streaming danych
Apache Beam & Dataflow
Kubernetes - Produkcja i skalowanie
Terraform - Infrastructure as Code
Bazy danych NoSQL
Nowoczesna Data Architecture
Monitorowanie i obserwowalność
IAM i bezpieczeństwo danych
Opanuj Data Engineering na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo