Database
 sql >> Baza danych >  >> RDS >> Database

SQL Wybierz Wyraźne

Zapytanie SQL DISTINCT służy do pobierania unikalnych wartości z tabel przy użyciu instrukcji SELECT w SQL.

Może wystąpić sytuacja, gdy chcesz pobrać unikatowe wartości z tabel, ale zduplikowane wartości są również obecne w tabeli. W takim przypadku należy użyć zapytania SELECT DISTINCT, aby wyeliminować zduplikowane wartości i pobrać unikalne wartości z tabeli.

Składnia instrukcji SELECT DISTINCT:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Rozważ istniejące tabele pracowników, które zawierają następujące zapisy:

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 65500 PUNE WYROCZNIA 1
1002 VAIBHAV SHARMA 60000 NOIDA WYROCZNIA 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAJ TESTOWANIE 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4
4002 ASHWINI TORBA 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI WYROCZNIA 1
5001 ARCHIT SHARMA 55500 DELHI TESTOWANIE 4

Zrozummy SELECT DISTINCT za pomocą przykładu.

Przykład 1: Napisz zapytanie, aby pobrać dane pracownika, którego wynagrodzenie przekracza 55000 bez użycia słowa kluczowego DISTINCT.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

W powyższym oświadczeniu pobraliśmy dane pracownika z tabeli pracownika, którego wynagrodzenie przekracza 55000, w tym zduplikowane wartości.

Dane wyjściowe następującej instrukcji:

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 65000 PUNE WYROCZNIA 1
1002 VAIBHAV SHARMA 60000 NOIDA WYROCZNIA 1
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4
4003 RUCHIKA AGARWAL 60000 DELHI WYROCZNIA 1
5001 ARCHIT SHARMA 55500 DELHI TESTOWANIE 4

Powyższy wynik pokazuje, że pobraliśmy dane pracowników, w tym zduplikowane wartości.

Przykład 2: Napisz zapytanie, aby wyświetlić wynagrodzenie pracownika z tabeli pracowników, których wynagrodzenie pracownika jest większe niż 55000, używając słowa kluczowego DISTINCT.

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

W powyższym zestawieniu pobieramy wynagrodzenie pracownika z tabeli pracownika, którego wynagrodzenie jest większe niż 55000, gdzie eliminujemy zduplikowane wartości. Wyróżnione wynagrodzenie będzie wyświetlać unikalne wynagrodzenie z tabeli pracownika.

Dane wyjściowe następującej instrukcji:

WYNAGRODZENIE
65000
60000
55500
65500
58500
60500

W pierwszym przykładzie pobraliśmy dane pracownika, którego wynagrodzenie jest większe niż 55000. Wynik zapytania zawiera zduplikowane wartości. Ale w drugim przykładzie wykonujemy to samo zapytanie, aby wyświetlić wynagrodzenie pracownika, którego wynagrodzenie jest większe niż 55000. Zapytanie wyświetla wynik eliminując zduplikowane wartości, ponieważ użyliśmy słowa kluczowego DISTINCT, po którym następuje kolumna wynagrodzenia.

Przykład 3: Napisz zapytanie, aby wyświetlić miasto pracownika i wynagrodzenie z tabeli pracowników bez użycia odrębnego słowa kluczowego.

SELECT SALARY, CITY FROM EMPLOYEES;

Wyświetliliśmy wynagrodzenie pracownika i nazwę miasta z tabeli pracownika w powyższym zestawieniu, w tym zduplikowane wartości.

Dane wyjściowe następującej instrukcji:

WYNAGRODZENIE MIASTO
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CZANDIGAR
65500 PUNE
50000 MUMBAJ
55500 PUNE
50500 JAIPUR
58500 MUMBAJ
60500 MUMBAJ
54500 NOIDA
60000 DELHI
55500 DELHI

Przykład 4: Napisz zapytanie, aby wyświetlić miasto pracownika i wynagrodzenie z tabeli pracowników, używając odrębnych słów kluczowych.

WYBIERZ RÓŻNE WYNAGRODZENIE, MIASTO OD PRACOWNIKÓW;

Pobraliśmy wynagrodzenie pracownika i miasto z tabeli pracowników w powyższym zestawieniu. Ale pobraliśmy unikalną wartość, która nie powtarza się w całej tabeli za pomocą słowa kluczowego DISTINCT.

Dane wyjściowe następującej instrukcji:

WYNAGRODZENIE MIASTO
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CZANDIGAR
50000 MUMBAJ
55500 PUNE
58500 MUMBAJ
60500 MUMBAJ
54500 NOIDA
60000 DELHI
55500 DELHI

Przykład 5: Napisz zapytanie, aby wyświetlić nazwisko i dział pracownika z tabeli pracownika, gdzie nazwa działu zaczyna się od „O” bez użycia słowa kluczowego DISTINCT;

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

W powyższym oświadczeniu pobraliśmy nazwiska pracowników, działy z tabeli pracowników tych pracowników, których nazwy działów zaczynają się od „O”, w tym zduplikowane wartości.

Dane wyjściowe następującej instrukcji:

NAZWISKO DZIAŁ
MISHRA WYROCZNIA
SHARMA WYROCZNIA
SHARMA WYROCZNIA
AGARWAL WYROCZNIA

Wyświetlane są tylko cztery rekordy pracowników, których dział zaczyna się od „O”.

Przykład 6: Napisz zapytanie, aby wyświetlić nazwisko i dział pracownika z tabeli pracownika, gdzie nazwa działu zaczyna się od „O”, używając słowa kluczowego DISTINCT;

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

Użyliśmy tego samego zapytania w przykładzie 5, po prostu dodaliśmy słowo kluczowe DISTINCT tuż przed nazwą kolumny, która będzie wyświetlać unikalne wartości z tabeli pracownika, którego nazwa działu zaczyna się od 'O'.

Dane wyjściowe następującej instrukcji:

NAZWISKO DZIAŁ
MISHRA WYROCZNIA
SHARMA WYROCZNIA
AGARWAL WYROCZNIA

To samo zapytanie, które wykonaliśmy w powyższym zapytaniu, dodaliśmy słowo kluczowe DISTINCT tuż przed kolumnami. Wynik, który otrzymujemy różni się od powyższego przykładu, ponieważ wyświetlany wynik ma unikalne wartości.

Przykład 7: Napisz zapytanie, aby policzyć wynagrodzenie pracowników z tabeli pracowników bez użycia odrębnego słowa kluczowego.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

W powyższym zestawieniu policzyliśmy całkowitą liczbę wynagrodzeń z tabeli pracownika, w tym zduplikowane wartości.

Dane wyjściowe następującej instrukcji:

WYNAGRODZENIE ŁĄCZNE
13

Przykład 8: Napisz zapytanie, aby policzyć wynagrodzenie pracownika z tabeli pracowników, używając odrębnego słowa kluczowego.

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

W powyższym zestawieniu policzyliśmy całkowitą liczbę wynagrodzeń z tabeli pracownika, z wyłączeniem zduplikowanych wartości.

Dane wyjściowe następującej instrukcji:

WYNAGRODZENIE ŁĄCZNE
8


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie flagi śledzenia 3226 do pomijania rejestrowania kopii zapasowej dziennika

  2. Korzystanie z funkcji T-SQL DATEADD, DATEDIFF i DATEPART w prostych terminach

  3. GROUP BY vs ORDER BY

  4. Kontynuacja nr 1 w przypadku wiodących poszukiwań dzikich kart

  5. Ogłaszamy ogólną dostępność SQL Compliance Manager 5.9