- Descrizione
- Tabella campione: ordini
- Esempio: select con distinct su due colonne
- Presentazione grafica della query di cui sopra :
- Esempio: selezionare con distinti su tre colonne
- Presentazione grafica della query precedente :
- Esempio: selezionare con distinti su tutte le colonne della prima query
- Presentazione grafica della query di cui sopra :
- Selezione con distinti su più colonne e clausola order by
- Funzione count() e select con distinct su più colonne
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.