Data Engineering

SQL avanzato per il Data Engineering

Window functions, CTE ricorsive, query analitiche, ottimizzazione, EXPLAIN ANALYZE, indicizzazione, partizionamento

20 domande da colloquio·
Mid-Level
1

Quale window function assegna un numero sequenziale univoco a ciascuna riga all'interno di una partizione?

Risposta

ROW_NUMBER() assegna un numero sequenziale univoco a ciascuna riga all'interno di una partizione, partendo da 1. A differenza di RANK() e DENSE_RANK() che possono assegnare lo stesso numero a valori uguali, ROW_NUMBER() garantisce sempre numeri univoci, anche per valori identici nella clausola ORDER BY.

2

Qual è la differenza principale tra RANK() e DENSE_RANK()?

Risposta

RANK() lascia spazi vuoti nella numerazione dopo valori a pari merito. Ad esempio, se due righe sono classificate 1, la successiva sarà classificata 3. DENSE_RANK() non lascia spazi vuoti: dopo due righe classificate 1, la successiva sarà classificata 2. Questa distinzione è importante per le analisi di classifica in cui gli spazi vuoti possono falsare le statistiche.

3

Come calcolare una somma cumulativa (running total) con una window function?

Risposta

SUM() OVER con ORDER BY senza un frame esplicito usa per impostazione predefinita ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, che calcola la somma di tutte le righe precedenti fino alla riga corrente inclusa. È il comportamento standard per creare totali cumulativi in analisi temporali o sequenziali.

4

Qual è il ruolo della clausola PARTITION BY in una window function?

5

Quale funzione consente di accedere al valore della riga precedente in una window function?

+17 domande da colloquio

Padroneggia Data Engineering per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis