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

SQL Wählen Sie Eindeutig aus

Die SQL DISTINCT-Abfrage wird verwendet, um mithilfe der SELECT-Anweisung in SQL eindeutige Werte aus den Tabellen abzurufen.

Es kann vorkommen, dass Sie die eindeutigen Werte aus den Tabellen abrufen möchten, aber auch doppelte Werte in der Tabelle vorhanden sind. In einem solchen Fall sollten Sie die Abfrage SELECT DISTINCT verwenden, um doppelte Werte zu eliminieren und eindeutige Werte aus der Tabelle abzurufen.

Syntax der Anweisung SELECT DISTINCT:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Betrachten Sie die vorhandenen Mitarbeitertabellen mit den folgenden Datensätzen:

MITARBEITERID FIRST_NAME NACHNAME GEHALT STADT ABTEILUNG MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NICHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUSCHIKA JAIN 50000 MUMBAI TESTEN 4
3001 PRANOTI SCHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOLD 60500 MUMBAI TESTEN 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUSCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4

Lassen Sie uns das SELECT DISTINCT anhand eines Beispiels verstehen.

Beispiel 1: Schreiben Sie eine Abfrage, um Mitarbeiterdetails abzurufen, deren Mitarbeitergehalt höher als 55000 ist, ohne das Schlüsselwort DISTINCT zu verwenden.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

In der obigen Anweisung haben wir die Mitarbeiterdetails aus der Mitarbeitertabelle abgerufen, deren Mitarbeitergehalt größer als 55000 ist, einschließlich der doppelten Werte.

Die Ausgabe für die folgende Anweisung:

MITARBEITERID FIRST_NAME NACHNAME GEHALT STADT ABTEILUNG MANAGERID
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 FMW 2
3001 PRANOTI SCHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOLD 60500 MUMBAI TESTEN 4
4003 RUSCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4

Das obige Ergebnis zeigt, dass wir die Mitarbeiterdetails abgerufen haben, einschließlich doppelter Werte.

Beispiel 2: Schreiben Sie eine Abfrage, um das Mitarbeitergehalt aus der Mitarbeitertabelle anzuzeigen, deren Mitarbeitergehalt größer als 55000 ist, und verwenden Sie das Schlüsselwort DISTINCT.

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

In der obigen Anweisung rufen wir das Mitarbeitergehalt aus der Tabelle des Mitarbeiters ab, dessen Gehalt größer als 55000 ist, wobei wir die doppelten Werte eliminieren. Eindeutiges Gehalt zeigt ein eindeutiges Gehalt aus der Tabelle des Mitarbeiters an.

Die Ausgabe für die folgende Anweisung:

GEHALT
65000
60000
55500
65500
58500
60500

Im ersten Beispiel haben wir die Mitarbeiterdetails abgerufen, deren Gehalt über 55000 liegt. Das Abfrageergebnis enthält doppelte Werte. Aber im zweiten Beispiel führen wir dieselbe Abfrage aus, um das Gehalt eines Mitarbeiters anzuzeigen, dessen Gehalt größer als 55000 ist. Die Abfrage zeigt das Ergebnis an und eliminiert die doppelten Werte, da wir das Schlüsselwort DISTINCT gefolgt von der Gehaltsspalte verwendet haben.

Beispiel 3: Schreiben Sie eine Abfrage, um die Stadt und das Gehalt der Mitarbeiter aus der Mitarbeitertabelle anzuzeigen, ohne ein eindeutiges Schlüsselwort zu verwenden.

SELECT SALARY, CITY FROM EMPLOYEES;

Wir haben das Gehalt des Mitarbeiters und den Namen der Stadt aus der Tabelle des Mitarbeiters in der obigen Anweisung angezeigt, einschließlich doppelter Werte.

Die Ausgabe für die folgende Anweisung:

GEHALT STADT
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

Beispiel 4: Schreiben Sie eine Abfrage, um die Stadt und das Gehalt des Mitarbeiters aus der Mitarbeitertabelle mit unterschiedlichen Schlüsselwörtern anzuzeigen.

WÄHLEN SIE UNTERSCHIEDLICHES GEHALT, STADT VON MITARBEITERN AUS;

Wir haben das Mitarbeitergehalt und die Stadt aus der Mitarbeitertabelle in der obigen Anweisung abgerufen. Aber wir haben mit dem Schlüsselwort DISTINCT einen eindeutigen Wert abgerufen, der sich nicht in der gesamten Tabelle wiederholt.

Die Ausgabe für die folgende Anweisung:

GEHALT STADT
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
50000 MUMBAI
55500 PUNE
58500 MUMBAI
60500 MUMBAI
54500 NOIDA
60000 DELHI
55500 DELHI

Beispiel 5: Schreiben Sie eine Abfrage, um den Nachnamen und die Abteilung eines Mitarbeiters aus der Tabelle des Mitarbeiters anzuzeigen, wobei der Name der Abteilung mit „O“ beginnt, ohne das Schlüsselwort DISTINCT zu verwenden;

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

In der obigen Anweisung haben wir die Nachnamen und Abteilungen der Mitarbeiter aus der Mitarbeitertabelle der Mitarbeiter abgerufen, deren Abteilungsnamen mit „O“ beginnen, einschließlich doppelter Werte.

Die Ausgabe für die folgende Anweisung:

NACHNAME ABTEILUNG
MISHRA ORACLE
SHARMA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Von den Mitarbeitern, deren Abteilung mit 'O' beginnt, werden nur vier Datensätze angezeigt.

Beispiel 6: Schreiben Sie eine Abfrage, um den Nachnamen und die Abteilung eines Mitarbeiters aus der Tabelle des Mitarbeiters anzuzeigen, wobei der Abteilungsname mit „O“ beginnt, und verwenden Sie das Schlüsselwort DISTINCT;

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

Wir haben dieselbe Abfrage in Beispiel 5 verwendet, nur das Schlüsselwort DISTINCT direkt vor dem Spaltennamen hinzugefügt, das eindeutige Werte aus der Tabelle des Mitarbeiters anzeigt, dessen Abteilungsname mit „O“ beginnt.

Die Ausgabe für die folgende Anweisung:

NACHNAME ABTEILUNG
MISHRA ORACLE
SHARMA ORACLE
AGARWAL ORACLE

Dieselbe Abfrage, die wir in der obigen Abfrage ausgeführt haben, wir haben das Schlüsselwort DISTINCT direkt vor den Spalten hinzugefügt. Die Ausgabe, die wir erhalten, unterscheidet sich vom obigen Beispiel, da die Ergebnisanzeige eindeutige Werte hat.

Beispiel 7: Schreiben Sie eine Abfrage, um das Mitarbeitergehalt aus der Mitarbeitertabelle zu zählen, ohne ein eindeutiges Schlüsselwort zu verwenden.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

In der obigen Anweisung haben wir die Gesamtzahl der Gehälter aus der Mitarbeitertabelle gezählt, einschließlich doppelter Werte.

Die Ausgabe für die folgende Anweisung:

GEHALT GESAMT
13

Beispiel 8: Schreiben Sie eine Abfrage zum Zählen des Mitarbeitergehalts aus der Mitarbeitertabelle mit einem eindeutigen Schlüsselwort.

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

In der obigen Anweisung haben wir die Gesamtzahl der Gehälter aus der Mitarbeitertabelle gezählt, ohne doppelte Werte.

Die Ausgabe für die folgende Anweisung:

GEHALT GESAMT
8