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

SQL Vælg Distinct

SQL DISTINCT-forespørgslen bruges til at hente unikke værdier fra tabellerne ved hjælp af SELECT-sætningen i SQL.

Der kan være en situation, der opstår, når du vil hente de unikke værdier fra tabellerne, men duplikerede værdier er også til stede inde i tabellen. I sådanne tilfælde skal du bruge SELECT DISTINCT-forespørgslen til at eliminere duplikerede værdier og hente unikke værdier fra tabellen.

Syntaks for SELECT DISTINCT-sætning:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Overvej den eksisterende medarbejders tabeller, som har følgende poster:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60.000 NOIDA ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI TEST 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TEST 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4

Lad os forstå SELECT DISTINCT ved hjælp af et eksempel.

Eksempel 1: Skriv en forespørgsel for at hente medarbejderoplysninger, hvis medarbejderløn er større end 55.000 uden at bruge søgeordet DISTINCT.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

I ovenstående erklæring har vi hentet medarbejderoplysningerne fra medarbejderens tabel, hvis medarbejderløn er større end 55.000, inklusive de duplikerede værdier.

Outputtet for følgende sætning:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65.000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60.000 NOIDA ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TEST 4
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4

Ovenstående resultat viser, at vi har hentet medarbejdernes detaljer, inklusive duplikerede værdier.

Eksempel 2: Skriv en forespørgsel for at vise medarbejderløn fra medarbejdertabel, hvis medarbejderløn er større end 55.000 ved hjælp af DISTINCT nøgleord.

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

I ovenstående opgørelse henter vi medarbejderlønnen fra medarbejderens tabel, hvis løn er større end 55.000, hvor vi eliminerer duplikatværdierne. Distinkt løn vil vise unik løn fra medarbejderens tabel.

Outputtet for følgende sætning:

LØN
65.000
60.000
55500
65500
58500
60500

I det første eksempel har vi hentet medarbejderoplysningerne, hvis løn er større end 55.000. Forespørgselsresultatet indeholder duplikerede værdier. Men i det andet eksempel udfører vi den samme forespørgsel for at vise medarbejderløn, hvis løn er større end 55.000. Forespørgslen viser resultatet, der eliminerer de duplikerede værdier, fordi vi brugte DISTINCT søgeordet efterfulgt af lønkolonnen.

Eksempel 3: Skriv en forespørgsel for at vise medarbejderby og løn fra medarbejdertabellen uden at bruge et særskilt søgeord.

SELECT SALARY, CITY FROM EMPLOYEES;

Vi har vist medarbejderens løn og bynavn fra medarbejderens tabel i ovenstående erklæring, inklusive duplikerede værdier.

Outputtet for følgende sætning:

LØN BY
65500 PUNE
60.000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
65500 PUNE
50.000 MUMBAI
55500 PUNE
50500 JAIPUR
58500 MUMBAI
60500 MUMBAI
54500 NOIDA
60.000 DELHI
55500 DELHI

Eksempel 4: Skriv en forespørgsel for at vise medarbejderby og løn fra medarbejdertabellen ved hjælp af forskellige søgeord.

VÆLG DISTINKT LØN, BY FRA MEDARBEJDERE;

Vi har hentet medarbejderens løn og by fra medarbejdertabellen i ovenstående opgørelse. Men vi har hentet en unik værdi, der ikke gentages i hele tabellen ved hjælp af DISTINCT nøgleordet.

Outputtet for følgende sætning:

LØN BY
65500 PUNE
60.000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
50.000 MUMBAI
55500 PUNE
58500 MUMBAI
60500 MUMBAI
54500 NOIDA
60.000 DELHI
55500 DELHI

Eksempel 5: Skriv en forespørgsel for at vise en medarbejders efternavn og afdeling fra medarbejderens tabel, hvor afdelingsnavnet starter med 'O' uden at bruge nøgleordet DISTINCT;

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

I ovenstående erklæring hentede vi medarbejdernes efternavne, afdelinger fra medarbejderens tabel over de medarbejdere, hvis afdelingsnavne starter med 'O', inklusive duplikerede værdier.

Outputtet for følgende sætning:

LAST_NAME AFDELING
MISHRA ORACLE
SHARMA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Der vises kun fire poster over de medarbejdere, hvis afdeling starter med 'O'.

Eksempel 6: Skriv en forespørgsel for at vise en medarbejders efternavn og afdeling fra medarbejderens tabel, hvor afdelingsnavnet starter med 'O' ved at bruge DISTINCT nøgleordet;

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

Vi har brugt den samme forespørgsel i eksempel 5, bare tilføjet DISTINCT-søgeordet lige før kolonnenavnet, der vil vise unikke værdier fra medarbejderens tabel, hvis afdelingsnavn starter med 'O'.

Outputtet for følgende sætning:

LAST_NAME AFDELING
MISHRA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Den samme forespørgsel, som vi har udført i ovenstående forespørgsel, tilføjede DISTINCT søgeordet lige før kolonner. Det output, vi får, adskiller sig fra ovenstående eksempel, fordi resultatvisningen har unikke værdier.

Eksempel 7: Skriv en forespørgsel for at tælle medarbejderløn fra medarbejdertabellen uden at bruge et særskilt søgeord.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

I ovenstående opgørelse har vi talt det samlede antal lønninger fra medarbejderens tabel, inklusive duplikerede værdier.

Outputtet for følgende sætning:

SAMLET LØN
13

Eksempel 8: Skriv en forespørgsel for at tælle medarbejderløn fra medarbejdertabellen ved at bruge et særskilt søgeord.

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

I ovenstående opgørelse har vi talt det samlede antal lønninger fra medarbejderens tabel, eksklusive duplikerede værdier.

Outputtet for følgende sætning:

SAMLET LØN
8


  1. Indstil tomme strenge ('') til NULL i hele databasen

  2. Hvordan laver man den rekursive SELECT-forespørgsel i MySQL?

  3. Oracle erklæring

  4. Output SQLite-forespørgselsresultater som en tabulatorsepareret liste