Data Engineering

Zaawansowany SQL dla Data Engineering

Window functions, rekurencyjne CTE, zapytania analityczne, optymalizacja, EXPLAIN ANALYZE, indeksowanie, partycjonowanie

20 pytań z rozmów·
Mid-Level
1

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.

2

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.

3

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.

4

Jaka jest rola klauzuli PARTITION BY w window function?

5

Która funkcja pozwala uzyskać dostęp do wartości poprzedniego wiersza w window function?

+17 pytań z rozmów

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