SQL SELECT con DISTINCT su più colonne

author
2 minutes, 1 second Read

Descrizione

I campi multipli possono anche essere aggiunti con la clausola DISTINCT. DISTINCT eliminerà le righe in cui tutti i campi selezionati sono identici.

Ecco una semplice query su alcune colonne selezionate nella tabella ordini dove agent_code=’A002′

Tabella campione: ordini

Codice SQL:

SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';

Output:

L’immagine sopra mostra che lo stesso agent_code, ord_amount e cust_code appare più volte nella tabella ordini.

Esempio: select con distinct su due colonne

Per ottenere le righe identiche (basate su due colonne agent_code e ord_amount) una volta dalla tabella degli ordini, si può usare la seguente istruzione sql :

Codice SQL:

SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';

Output:

Presentazione grafica della query di cui sopra :

Esempio: selezionare con distinti su tre colonne

Per ottenere le righe identiche (basate su tre colonne agent_code, ord_amount e cust_code) una volta dalla tabella ‘ordini’, può essere usata la seguente istruzione sql:

Codice SQL:

 SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';

Output:

Presentazione grafica della query precedente :

Esempio: selezionare con distinti su tutte le colonne della prima query

Per ottenere le righe identiche (su quattro colonne agent_code, ord_amount, cust_code e ord_num) una volta dalla tabella ‘ordini’, può essere usata la seguente istruzione sql:

select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';

Output:

Nell’output di cui sopra, tutte le righe il cui codice_agente è ‘A002’ sono restituite perché non ci sono righe identiche su codice_agente, importo_ordine, codice_cliente e numero_ordine. Vedi la seguente presentazione :

Presentazione grafica della query di cui sopra :

Selezione con distinti su più colonne e clausola order by

Puoi usare una clausola order by nella dichiarazione select con distinti su più colonne. Ecco un esempio:

 SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;

Output:

Funzione count() e select con distinct su più colonne

Puoi usare la funzione count() in una dichiarazione select con distinct su più colonne per contare le righe distinte. Ecco un esempio:

 select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');

Output:

L’output del suddetto statement SQL mostrato qui è stato ottenuto utilizzando Oracle Database 10g Express Edition.

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.