Vai al contenuto principale

Come usare SQL MINUS

L'operatore SQL MINUS sottrae un result set da un altro. È semplice da usare: inserisci MINUS tra due query per escludere i record in comune dal primo set.
Aggiornato 29 set 2026  · 10 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

In SQL, l'operatore MINUS è uno strumento potente per sottrarre un result set da un altro. Questo operatore è essenziale negli scenari in cui dobbiamo individuare le righe uniche presenti in un dataset ma non in un altro.

In questo articolo, esploreremo lo scopo, la sintassi e le applicazioni pratiche dell'operatore SQL MINUS, così da garantire una comprensione approfondita di query SQL efficaci e manipolazione dei dati.

La risposta rapida: come usare SQL MINUS

L'operatore SQL MINUS sottrae un result set da un altro, restituendo solo le righe uniche del primo set che non sono presenti nel secondo.

Immaginiamo di avere due tabelle dei dipendenti, una del 2023 e una del 2024. Vogliamo scoprire quali dipendenti erano presenti in Employees2023 ma non in Employees2024. Potremmo usare un'istruzione SQL MINUS per ottenere la risposta. 

SELECT EmployeeID, Name, Department
FROM Employees2023
MINUS
SELECT EmployeeID, Name, Department
FROM Employees2024;
Employees2023:

| EmployeeID | Name    | Department |

|------------|---------|------------|

| 1          | Alice   | HR         |

| 2          | Bob     | IT         |

| 3          | Charlie | Sales      |

| 4          | David   | IT         |


Employees2024:

| EmployeeID | Name    | Department |

|------------|---------|------------|

| 2          | Bob     | IT         |

| 3          | Charlie | Sales      |

| 4          | David   | IT         |

| 5          | Eve     | Marketing  |


Expected Output:

| EmployeeID | Name  | Department |

|------------|-------|------------|

| 1          | Alice | HR         |

Che cos'è l'operatore SQL MINUS?

L'operatore SQL MINUS confronta due istruzioni SELECT e restituisce le righe della prima istruzione SELECT assenti nella seconda. In particolare, esegue un'operazione di differenza di insiemi, cruciale per vari compiti di analisi dei dati. È particolarmente utile per attività di pulizia, validazione e consolidamento dei dati in cui dobbiamo individuare discrepanze tra dataset.

Sintassi dell'operatore SQL MINUS

La sintassi di base dell'operatore MINUS è la seguente:

SELECT column1, column2, ...
FROM table1
MINUS
SELECT column1, column2, ...
FROM table2;

I componenti della query sono:

  • SELECT statement: L'istruzione SELECT specifica le colonne desiderate e la tabella da cui recuperarle.
  • Operatore MINUS: L'operatore MINUS sottrae il secondo result set dal primo.
  • Componenti opzionali come la clausola WHERE possono essere incluse per filtrare i dati.
SELECT column1, column2, ...
FROM table1
WHERE condition
MINUS
SELECT column1, column2, ...
FROM table2
WHERE condition;

Punti importanti da ricordare

Per usare correttamente l'operatore MINUS, tieni a mente questi punti chiave:

  • Entrambe le istruzioni SELECT devono avere lo stesso numero di colonne.
  • I tipi di dato delle colonne corrispondenti devono essere gli stessi.
  • Sebbene i nomi delle colonne non debbano essere identici, i loro tipi di dato devono corrispondere.
  • MINUS rimuove le righe duplicate dal result set finale, restituendo solo righe distinte.

Esempi pratici

Vediamo ora alcuni esempi pratici per consolidare la nostra comprensione.

Esempio con un'unica espressione

Usiamo la seguente query per trovare i reparti unici nel 2019 che non sono presenti nel 2020:

SELECT Department
FROM Employees2019
MINUS
SELECT Department
FROM Employees2020;

Esempio con clausola ORDER BY

Usiamo la seguente query per ottenere i dipendenti unici del 2019, ordinati per nome:

SELECT EmployeeName
FROM Employees2019
MINUS
SELECT EmployeeName
FROM Employees2020
ORDER BY EmployeeName;

Casi d'uso comuni dell'operatore MINUS

L'operatore SQL MINUS è uno strumento versatile che può essere applicato in vari scenari per migliorare l'analisi e la gestione dei dati. Di seguito, esaminiamo diversi casi d'uso quotidiani in cui l'operatore MINUS si rivela particolarmente utile.

Validazione dei dati nei processi ETL

Garantisci coerenza e accuratezza dei dati nei processi ETL (Extract, Transform, Load). L'operatore MINUS può validare i dati confrontando i dataset di origine e di destinazione.

Vediamo un esempio. Per verificare che tutti i record dalla tabella di staging siano stati caricati nella tabella finale, possiamo usare la seguente query:

SELECT *
FROM StagingTable
MINUS
SELECT *
FROM FinalTable;

Identificare dati mancanti tra due dataset

Quando si consolidano dati da più fonti, è fondamentale individuare eventuali record mancanti per garantirne la completezza:

SELECT CustomerID
FROM SourceA
MINUS
SELECT CustomerID
FROM SourceB;

Limitazioni e alternative

Sebbene l'operatore SQL MINUS sia uno strumento potente per confrontare dataset, presenta alcune limitazioni e non è sempre la scelta migliore in ogni scenario. Capire queste limitazioni e conoscere le alternative disponibili può aiutarci a prendere decisioni migliori quando lavoriamo con query SQL.

  1. Non supportato da tutti i database: l'operatore MINUS non è supportato universalmente da tutti i sistemi di gestione di database SQL. Sebbene sia disponibile in Oracle, non è supportato in SQL Server, che utilizza l'operatore EXCEPT.
  2. Requisiti di colonne e tipi di dato: entrambe le istruzioni SELECT usate con l'operatore MINUS devono avere lo stesso numero di colonne e le colonne corrispondenti devono avere tipi di dato compatibili. Ciò può risultare restrittivo quando si lavora con query complesse che coinvolgono dataset diversi.
  3. Distinzione tra maiuscole e minuscole: l'operatore MINUS è case-sensitive. Ad esempio, "Apple" e "apple" sono considerati valori diversi. Se non si considera la distinzione, si possono ottenere risultati inattesi.
  4. Nessun ordinamento: il result set restituito dall'operatore MINUS non è ordinato. Se è richiesto un ordine specifico, bisogna usare un'ulteriore clausola ORDER BY.
  5. Problemi di performance: l'operatore MINUS può essere lento con dataset di grandi dimensioni, poiché deve eseguire un confronto completo tra i due result set. Questo può causare colli di bottiglia nelle applicazioni su larga scala.

Un'alternativa all'operatore MINUS è l'operatore EXCEPT, che è funzionalmente simile ed è ampiamente supportato in diversi database SQL.

  • MINUS: standard in Oracle e in alcuni altri database.
  • EXCEPT: standard in SQL Server, PostgreSQL e altri database.

Conclusione

Comprendere l'operatore SQL MINUS è fondamentale per eseguire query SQL efficaci e manipolare i dati. Questo operatore ci aiuta a individuare le righe uniche tra due dataset, risultando prezioso per attività di validazione, pulizia e consolidamento dei dati. Esercitati con dataset diversi per padroneggiare l'uso di MINUS e migliorare le tue competenze in SQL.

Se vuoi davvero migliorare le tue skill in SQL, segui un corso DataCamp come Introduction to SQL. Questo corso fornisce una buona base per argomenti più avanzati. Se senti di avere una buona padronanza delle basi, prova il nostro corso Intermediate SQL, che approfondisce le complessità di SQL, incluse le operazioni sugli insiemi come MINUS.


Oluseye Jeremiah's photo
Author
Oluseye Jeremiah
LinkedIn

Technical writer specializzato in AI, ML e data science: rende idee complesse chiare e accessibili.

Domande frequenti

A cosa serve l'operatore SQL MINUS?

L'operatore SQL MINUS viene usato per sottrarre un result set da un altro, restituendo solo le righe uniche del primo set che non sono presenti nel secondo.

Quali sono i requisiti sintattici per usare l'operatore SQL MINUS?

Entrambe le istruzioni SELECT nell'operazione MINUS devono avere lo stesso numero di colonne e i tipi di dato delle colonne corrispondenti devono essere uguali.

L'operatore SQL MINUS può essere usato in tutti i database SQL?

No, l'operatore MINUS non è supportato da tutti i database SQL. Ad esempio, non è supportato in MySQL ma è disponibile in Oracle.

Quali sono alcuni casi d'uso comuni per l'operatore SQL MINUS?

Casi d'uso comuni includono la validazione dei dati nei processi ETL, l'identificazione di dati mancanti tra due dataset e la pulizia e il consolidamento di dati da più fonti.

Qual è la differenza tra gli operatori SQL MINUS ed EXCEPT?

L'operatore MINUS è utilizzato principalmente in Oracle e in alcuni altri database, mentre l'operatore EXCEPT svolge una funzione simile ed è usato in SQL Server, PostgreSQL e altri database. Entrambi gli operatori restituiscono le righe uniche della prima istruzione SELECT che non sono presenti nella seconda.

In cosa l'operatore SQL MINUS è diverso da un anti join?

L'operatore MINUS in SQL viene utilizzato per restituire tutte le righe della prima query che non sono presenti nella seconda query. È un'operazione tra insiemi che confronta i risultati di due query e ne restituisce la differenza. Un anti join, invece, è un tipo di join che restituisce le righe della prima tabella per le quali non esistono righe corrispondenti nella seconda tabella. Questo può essere implementato usando un LEFT JOIN combinato con una clausola WHERE per filtrare le righe in cui la condizione di join non è soddisfatta.

Argomenti
SQL
Analisi dei dati

Impara SQL con DataCamp

Corso

Introduzione a SQL

2 ore
1.6M
Impara a creare e interrogare i database relazionali utilizzando SQL in sole due ore.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra AltroMostra Altro