sql >> Databáze >  >> RDS >> Database

SQL Select Distinct

Dotaz SQL DISTINCT se používá k načtení jedinečných hodnot z tabulek pomocí příkazu SELECT v SQL.

Může nastat situace, která nastane, když chcete načíst jedinečné hodnoty z tabulek, ale v tabulce jsou také duplicitní hodnoty. V takovém případě byste měli použít dotaz SELECT DISTINCT k odstranění duplicitních hodnot a načtení jedinečných hodnot z tabulky.

Syntaxe příkazu SELECT DISTINCT:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Zvažte existující tabulky zaměstnanců, které mají následující záznamy:

ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE
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 TESTOVÁNÍ 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 TESTOVÁNÍ 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTOVÁNÍ 4

Pojďme pochopit SELECT DISTINCT pomocí příkladu.

Příklad 1: Napište dotaz pro získání podrobností o zaměstnanci, jehož plat zaměstnance je vyšší než 55 000, bez použití klíčového slova DISTINCT.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

Ve výše uvedeném prohlášení jsme získali údaje o zaměstnanci z tabulky zaměstnance, jehož plat zaměstnance je vyšší než 55 000, včetně duplicitních hodnot.

Výstup pro následující příkaz:

ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE
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 TESTOVÁNÍ 4
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTOVÁNÍ 4

Výše uvedený výsledek ukazuje, že jsme získali podrobnosti o zaměstnancích, včetně duplicitních hodnot.

Příklad 2: Napište dotaz pro zobrazení platu zaměstnanců z tabulky zaměstnanců, jejichž plat zaměstnanců je větší než 55 000 pomocí klíčového slova DISTINCT.

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

Ve výše uvedeném výpisu načítáme mzdu zaměstnance z tabulky zaměstnance, jehož mzda je vyšší než 55000, kde odstraňujeme duplicitní hodnoty. Odlišný plat zobrazí jedinečný plat z tabulky zaměstnance.

Výstup pro následující příkaz:

PLAT
65 000
60 000
55500
65500
58500
60500

V prvním příkladu jsme získali podrobnosti o zaměstnanci, jehož plat je vyšší než 55 000. Výsledek dotazu obsahuje duplicitní hodnoty. Ale ve druhém příkladu provedeme stejný dotaz pro zobrazení platu zaměstnance, jehož plat je vyšší než 55 000. Dotaz zobrazí výsledek eliminující duplicitní hodnoty, protože jsme použili klíčové slovo DISTINCT následované sloupcem plat.

Příklad 3: Napište dotaz pro zobrazení města zaměstnance a platu z tabulky zaměstnanců bez použití odlišného klíčového slova.

SELECT SALARY, CITY FROM EMPLOYEES;

Ve výše uvedeném výpisu jsme zobrazili plat zaměstnance a název města z tabulky zaměstnance, včetně duplicitních hodnot.

Výstup pro následující příkaz:

PLAT MĚSTO
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

Příklad 4: Napište dotaz pro zobrazení města a platu zaměstnance z tabulky zaměstnanců pomocí odlišných klíčových slov.

VYBERTE ODLIŠNÝ PLAT, MĚSTO OD ZAMĚSTNANCŮ;

Získali jsme plat zaměstnance a město z tabulky zaměstnanců ve výše uvedeném výpisu. Ale pomocí klíčového slova DISTINCT jsme získali jedinečnou hodnotu, která se neopakuje v celé tabulce.

Výstup pro následující příkaz:

PLAT MĚSTO
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

Příklad 5: Napište dotaz pro zobrazení příjmení a oddělení zaměstnance z tabulky zaměstnanců, kde název oddělení začíná na 'O' bez použití klíčového slova DISTINCT;

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

Ve výše uvedeném příkazu jsme získali příjmení zaměstnanců, oddělení z tabulky zaměstnanců těch zaměstnanců, jejichž jména oddělení začínají na „O“, včetně duplicitních hodnot.

Výstup pro následující příkaz:

LAST_NAME ODDĚLENÍ
MISHRA ORACLE
SHARMA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Jsou zobrazeny pouze čtyři záznamy o zaměstnancích, jejichž oddělení začíná na „O“.

Příklad 6: Napište dotaz pro zobrazení příjmení a oddělení zaměstnance z tabulky zaměstnanců, kde název oddělení začíná na „O“ pomocí klíčového slova DISTINCT;

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

Použili jsme stejný dotaz v příkladu 5, jen jsme přidali klíčové slovo DISTINCT těsně před název sloupců, které zobrazí jedinečné hodnoty z tabulky zaměstnance, jehož název oddělení začíná „O“.

Výstup pro následující příkaz:

LAST_NAME ODDĚLENÍ
MISHRA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Stejný dotaz, který jsme provedli ve výše uvedeném dotazu, jsme přidali klíčové slovo DISTINCT těsně před sloupce. Výstup, který získáme, se liší od výše uvedeného příkladu, protože zobrazení výsledku má jedinečné hodnoty.

Příklad 7: Napište dotaz pro výpočet platů zaměstnanců z tabulky zaměstnanců bez použití odlišného klíčového slova.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

Ve výše uvedeném výpisu jsme spočítali celkový počet platů z tabulky zaměstnance včetně duplicitních hodnot.

Výstup pro následující příkaz:

CELKOVÝ PLAT
13

Příklad 8: Napište dotaz pro výpočet platů zaměstnanců z tabulky zaměstnanců pomocí odlišného klíčového slova.

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

Ve výše uvedeném prohlášení jsme spočítali celkový počet platů z tabulky zaměstnance, s vyloučením duplicitních hodnot.

Výstup pro následující příkaz:

CELKOVÝ PLAT
8


  1. Prozkoumání MySQL Binlog Server – Ripple

  2. SQL seskupení podle měsíce a roku

  3. Připojení k serveru SQL někdy funguje

  4. SQL Server LIKE obsahující znaky hranatých závorek