sql >> Databasteknik >  >> RDS >> Database

SQL Välj Distinkt

SQL DISTINCT-frågan används för att hämta unika värden från tabellerna med hjälp av SELECT-satsen i SQL.

Det kan finnas en situation som uppstår när du vill hämta de unika värdena från tabellerna, men dubblettvärden finns också inne i tabellen. I sådana fall bör du använda SELECT DISTINCT-frågan för att eliminera dubbletter av värden och hämta unika värden från tabellen.

Syntax för SELECT DISTINCT-satsen:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Tänk på den befintliga medarbetarens tabeller som har följande poster:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING 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 TESTER 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 TESTER 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTER 4

Låt oss förstå SELECT DISTINCT med hjälp av ett exempel.

Exempel 1: Skriv en fråga för att hämta anställdsuppgifter vars anställdas lön är högre än 55 000 utan att använda nyckelordet DISTINCT.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

I ovanstående uttalande har vi hämtat personaluppgifterna från den anställdes tabell vars anställdas lön är högre än 55 000, inklusive dubblettvärdena.

Utdata för följande sats:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING 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 TESTER 4
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTER 4

Resultatet ovan visar att vi har hämtat de anställdas detaljer, inklusive dubbletter av värden.

Exempel 2: Skriv en fråga för att visa anställdas lön från anställdas tabell vars anställdas lön är större än 55 000 med hjälp av DISTINCT nyckelord.

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

I ovanstående uttalande hämtar vi personallönen från den anställdes tabell vars lön är större än 55 000, där vi eliminerar dubblettvärdena. Distinkt lön kommer att visa unik lön från den anställdes bord.

Utdata för följande sats:

LÖN
65 000
60 000
55500
65500
58500
60500

I det första exemplet har vi hämtat personaluppgifter vars lön är högre än 55 000. Frågeresultatet innehåller dubbletter av värden. Men i det andra exemplet kör vi samma fråga för att visa anställdas lön vars lön är högre än 55 000. Frågan visar resultatet och eliminerar dubblettvärdena eftersom vi använde nyckelordet DISTINCT följt av lönekolumnen.

Exempel 3: Skriv en fråga för att visa anställdas stad och lön från anställdas tabell utan att använda ett distinkt nyckelord.

SELECT SALARY, CITY FROM EMPLOYEES;

Vi har visat anställdas lön och ortsnamn från den anställdes tabell i ovanstående uttalande, inklusive dubbletter av värden.

Utdata för följande sats:

LÖN STAD
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

Exempel 4: Skriv en fråga för att visa anställdas stad och lön från anställdas tabell med hjälp av distinkta nyckelord.

VÄLJ DISTINKT LÖN, STAD FRÅN ANSTÄLLDA;

Vi har hämtat anställdas lön och stad från personaltabellen i ovanstående uttalande. Men vi har hämtat ett unikt värde som inte upprepas i hela tabellen med nyckelordet DISTINCT.

Utdata för följande sats:

LÖN STAD
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

Exempel 5: Skriv en fråga för att visa en anställds efternamn och avdelning från den anställdes tabell där avdelningsnamnet börjar med 'O' utan att använda nyckelordet DISTINCT;

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

I ovanstående uttalande hämtade vi anställdas efternamn, avdelningar från den anställdes tabell över de anställda vars avdelningsnamn börjar med "O", inklusive dubbletter av värden.

Utdata för följande sats:

LAST_NAME AVDELNING
MISHRA ORACLE
SHARMA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Endast fyra poster visas över de anställda vars avdelning börjar med 'O'.

Exempel 6: Skriv en fråga för att visa en anställds efternamn och avdelning från den anställdes tabell där avdelningsnamnet börjar med 'O' med hjälp av nyckelordet DISTINCT;

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

Vi har använt samma fråga i exempel 5, precis lagt till nyckelordet DISTINCT precis före kolumnnamnet som kommer att visa unika värden från medarbetarens tabell vars avdelningsnamn börjar med 'O'.

Utdata för följande sats:

LAST_NAME AVDELNING
MISHRA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Samma fråga som vi har kört i ovanstående fråga, vi lade till nyckelordet DISTINCT precis före kolumner. Resultatet vi får skiljer sig från exemplet ovan eftersom resultatvisningen har unika värden.

Exempel 7: Skriv en fråga för att räkna anställdas lön från anställdas tabell utan att använda ett distinkt nyckelord.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

I ovanstående uttalande har vi räknat det totala antalet löner från den anställdes tabell, inklusive dubbletter av värden.

Utdata för följande sats:

TOTALLÖN
13

Exempel 8: Skriv en fråga för att räkna anställdas lön från anställdas tabell med ett distinkt nyckelord.

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

I ovanstående uttalande har vi räknat det totala antalet löner från den anställdes tabell, exklusive dubbletter av värden.

Utdata för följande sats:

TOTALLÖN
8


  1. 7 sätt att kontrollera din Oracle-version

  2. Övervaka dina databaser med MySQL Enterprise Monitor

  3. Hur hämtar man datumet för mms från content://mms.

  4. Hur använder man strftime och datetime korrekt med Room library?