Fondamenti

DISTINCT o GROUP BY: come eliminare le ripetizioni?

Entrambi possono restituire una riga per valore, ma il loro intento non è lo stesso.

Team SQL.tn7min
Un flusso di dati separa la semplice deduplicazione dall'aggregazione basata sul calcolo

Visualizzare l'unicità o il calcolo per gruppo?

SELECT DISTINCT categorie esprime direttamente una singola richiesta di lista. GROUP BY categorie diventa naturale aggiungendo COUNT, SUM o AVG.

Nessuno dei due risolve un duplicato nella tabella di origine. Modellano solo il risultato della lettura.

I nomi, gli importi e i dati utilizzati in questo articolo sono fittizi e creati a scopo didattico.

La domanda è stata spiegata

Inizia definendo cosa dovrebbe rappresentare una riga del risultato. Questa decisione determina le colonne, i raggruppamenti e i controlli necessari.

L'esempio seguente isola il meccanismo principale. Eseguilo, osserva il risultato, quindi modifica una clausola alla volta per comprenderne l'effetto.

Conta i prodotti per categoria
SELECT categorie, COUNT(*) AS produits
FROM produits
GROUP BY categorie
ORDER BY produits DESC, categorie;

Leggi il risultato come un analista

Una linea ora rappresenta una categoria. Il misuratore spiega il suo peso, cosa che un semplice DISTINCT non farebbe.

Se vengono selezionate più colonne, DISTINCT si applica alla loro combinazione completa; quindi definire con precisione l’unicità attesa.

  • Scrivi cosa rappresenta una singola riga.
  • Ispezionare le chiavi di origine.
  • Utilizzare GROUP BY per le aggregazioni.
  • Aggiungi l'ordinamento stabile.

Errori che distorcono l'analisi

Una query può essere valida senza rispondere correttamente alla domanda. Gli errori più costosi spesso sono silenziosi: perimetro sbagliato, linea moltiplicata o valore mancante interpretato come zero.

Prima di condividere il risultato, confrontalo con un piccolo campione calcolato manualmente e mantieni la definizione dell'ambito con la query.

  • Usa DISTINCT per nascondere un join difettoso.
  • Credi che agisca solo sulla prima colonna.
  • Raggruppa per una colonna non necessaria e modifica il livello di dettaglio.
  • Confondere la deduplicazione del risultato con la pulizia dell'origine.

Mettiti in pratica

Elenca le categorie univoche, quindi trasforma la query in un conteggio di categorie per confrontare i due intenti.

Il simulatore SQL di SQL.tn esegue solo query di lettura su dati fittizi nel tuo browser. Puoi provare più scritture e confrontare i risultati senza installare alcun software.

Metti in pratica questa guida.

Apri l’esercizio collegato, esegui la query e confronta il risultato atteso.

Inizia l’esercizio