Database
 sql >> Database >  >> RDS >> Database

SQL Seleziona distinto

La query SQL DISTINCT viene utilizzata per recuperare valori univoci dalle tabelle utilizzando l'istruzione SELECT nell'SQL.

Potrebbe verificarsi una situazione quando si desidera recuperare i valori univoci dalle tabelle, ma all'interno della tabella sono presenti anche valori duplicati. In tal caso, dovresti utilizzare la query SELECT DISTINCT per eliminare i valori duplicati e recuperare i valori univoci dalla tabella.

Sintassi dell'istruzione SELECT DISTINCT:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Considera le tabelle dei dipendenti esistenti che hanno i seguenti record:

ID DIPENDENTE FIRST_NAME COGNOME STIPENDIO CITTÀ REPARTO RIDESTORE
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NICHIL VANI 50500 JAIPUR FM 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FM 2
2003 RUCHIKA JAIN 50000 MUMBAI PROVA 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FM 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI PROVA 4
4002 ASHWINI BAGAGLIO 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI PROVA 4

Comprendiamo il SELECT DISTINCT con l'aiuto di un esempio.

Esempio 1: Scrivi una query per recuperare i dettagli del dipendente il cui stipendio del dipendente è superiore a 55000 senza utilizzare la parola chiave DISTINCT.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

Nella dichiarazione precedente, abbiamo recuperato i dettagli del dipendente dalla tabella del dipendente il cui stipendio del dipendente è maggiore di 55000, inclusi i valori duplicati.

L'output per la seguente istruzione:

ID DIPENDENTE FIRST_NAME COGNOME STIPENDIO CITTÀ REPARTO RIDESTORE
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FM 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI PROVA 4
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI PROVA 4

Il risultato precedente mostra che abbiamo recuperato i dettagli dei dipendenti, inclusi i valori duplicati.

Esempio 2: Scrivi una query per visualizzare lo stipendio dei dipendenti dalla tabella dei dipendenti il ​​cui stipendio dei dipendenti è maggiore di 55000 utilizzando la parola chiave DISTINCT.

SELECT DISTINCT (SALARY) FROM EMPLOYEES WHERE SALARY > 55000;

Nella dichiarazione di cui sopra, stiamo recuperando lo stipendio del dipendente dalla tabella del dipendente il cui stipendio è maggiore di 55000, dove stiamo eliminando i valori duplicati. Lo stipendio distinto mostrerà lo stipendio unico dal tavolo del dipendente.

L'output per la seguente istruzione:

STIPENDIO
65000
60000
55500
65500
58500
60500

Nel primo esempio, abbiamo recuperato i dettagli del dipendente il cui stipendio è maggiore di 55000. Il risultato della query include valori duplicati. Ma nel secondo esempio, eseguiamo la stessa query per visualizzare lo stipendio dei dipendenti il ​​cui stipendio è maggiore di 55000. La query mostra il risultato eliminando i valori duplicati perché abbiamo utilizzato la parola chiave DISTINCT seguita dalla colonna dello stipendio.

Esempio 3: Scrivi una query per visualizzare la città dei dipendenti e lo stipendio dalla tabella dei dipendenti senza utilizzare una parola chiave distinta.

SELECT SALARY, CITY FROM EMPLOYEES;

Abbiamo mostrato lo stipendio del dipendente e il nome della città dalla tabella del dipendente nella dichiarazione sopra, inclusi i valori duplicati.

L'output per la seguente istruzione:

STIPENDIO CITTÀ
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
65500 PUNE
50000 MUMBAI
55500 PUNE
50500 JAIPUR
58500 MUMBAI
60500 MUMBAI
54500 NOIDA
60000 DELHI
55500 DELHI

Esempio 4: Scrivi una query per visualizzare la città dei dipendenti e lo stipendio dalla tabella dei dipendenti utilizzando parole chiave distinte.

SELEZIONARE STIPENDIO DISTINTO, CITTÀ DAI DIPENDENTI;

Abbiamo recuperato lo stipendio e la città del dipendente dalla tabella dei dipendenti nella dichiarazione sopra. Ma abbiamo recuperato un valore univoco che non viene ripetuto nell'intera tabella utilizzando la parola chiave DISTINCT.

L'output per la seguente istruzione:

STIPENDIO CITTÀ
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
50000 MUMBAI
55500 PUNE
58500 MUMBAI
60500 MUMBAI
54500 NOIDA
60000 DELHI
55500 DELHI

Esempio 5: Scrivi una query per visualizzare il cognome e il reparto di un dipendente dalla tabella del dipendente in cui il nome del reparto inizia con "O" senza utilizzare la parola chiave DISTINCT;

SELECT LAST_NAME, DEPARTMENT FROM EMPLOYEES WHERE DEPARTMENT LIKE 'O%';

Nella dichiarazione precedente, abbiamo recuperato i cognomi dei dipendenti, i reparti dalla tabella dei dipendenti di quei dipendenti i cui nomi dei reparti iniziano con "O", inclusi i valori duplicati.

L'output per la seguente istruzione:

COGNOME REPARTO
MISHRA ORACLE
SHARMA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Vengono visualizzati solo quattro record di quei dipendenti il ​​cui reparto inizia con 'O'.

Esempio 6: Scrivi una query per visualizzare il cognome e il reparto di un dipendente dalla tabella del dipendente in cui il nome del reparto inizia con "O" utilizzando la parola chiave DISTINCT;

SELECT DISTINCT LAST_NAME, DEPARTMENT FROM EMPLOYEES WHERE DEPARTMENT LIKE 'O%';

Abbiamo utilizzato la stessa query nell'esempio 5, appena aggiunta la parola chiave DISTINCT appena prima del nome delle colonne che visualizzeranno valori univoci dalla tabella del dipendente il cui nome del reparto inizia con 'O'.

L'output per la seguente istruzione:

COGNOME REPARTO
MISHRA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

La stessa query che abbiamo eseguito nella query precedente, abbiamo aggiunto la parola chiave DISTINCT appena prima delle colonne. L'output che otteniamo differisce dall'esempio precedente perché la visualizzazione dei risultati ha valori univoci.

Esempio 7: Scrivi una query per contare lo stipendio dei dipendenti dalla tabella dei dipendenti senza utilizzare una parola chiave distinta.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

Nella dichiarazione sopra, abbiamo contato il numero totale di stipendi dalla tabella del dipendente, inclusi i valori duplicati.

L'output per la seguente istruzione:

STIPENDIO TOTALE
13

Esempio 8: Scrivi una query per contare lo stipendio dei dipendenti dalla tabella dei dipendenti utilizzando una parola chiave distinta.

SELECT COUNT(DISTINCT SALARY) AS TOTAL SALARY FROM EMPLOYEES;

Nella dichiarazione sopra, abbiamo contato il numero totale di stipendi dalla tabella del dipendente, esclusi i valori duplicati.

L'output per la seguente istruzione:

STIPENDIO TOTALE
8