sql >> Base de Datos >  >> RDS >> Database

SQL Seleccionar Distinto

La consulta SQL DISTINCT se usa para obtener valores únicos de las tablas usando la instrucción SELECT en el SQL.

Puede haber una situación que surja cuando desee obtener los valores únicos de las tablas, pero también hay valores duplicados dentro de la tabla. En tal caso, debe usar la consulta SELECT DISTINCT para eliminar valores duplicados y obtener valores únicos de la tabla.

Sintaxis de la sentencia SELECT DISTINCT:

SELECT DISTINCT columnname1, columnname2 FROM table_name;

Considere las tablas de empleados existentes que tienen los siguientes registros:

ID DE EMPLEADO FIRST_NAME APELLIDO SALARIO CIUDAD DEPARTAMENTO ID DE ADMINISTRADOR
1001 VAIBHAVI MISHRA 65500 PUNE ORACULO 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACULO 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACULO 1
2002 BHAVESH JAÍN 65500 PUNE FMW 2
2003 RUCHIKA JAÍN 50000 BOMBAY PRUEBA 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 BOMBAY JAVA 3
4001 RAJESH GOUD 60500 BOMBAY PRUEBA 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACULO 1
5001 ARCHIT SHARMA 55500 DELHI PRUEBA 4

Entendamos el SELECT DISTINCT con la ayuda de un ejemplo.

Ejemplo 1: Escriba una consulta para obtener los detalles de los empleados cuyo salario de empleado sea superior a 55000 sin utilizar la palabra clave DISTINCT.

SELECT * FROM EMPLOYEES WHERE SALARY > 55000;

En la declaración anterior, hemos obtenido los detalles del empleado de la tabla del empleado cuyo salario del empleado es superior a 55000, incluidos los valores duplicados.

El resultado de la siguiente instrucción:

ID DE EMPLEADO FIRST_NAME APELLIDO SALARIO CIUDAD DEPARTAMENTO ID DE ADMINISTRADOR
1001 VAIBHAVI MISHRA 65000 PUNE ORACULO 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACULO 1
2001 PRACHI SHARMA 55500 CHANDIGARH ORACULO 1
2002 BHAVESH JAÍN 65500 PUNE FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 BOMBAY JAVA 3
4001 RAJESH GOUD 60500 BOMBAY PRUEBA 4
4003 RUCHIKA AGARWAL 60000 DELHI ORACULO 1
5001 ARCHIT SHARMA 55500 DELHI PRUEBA 4

El resultado anterior muestra que hemos obtenido los detalles de los empleados, incluidos los valores duplicados.

Ejemplo 2: Escriba una consulta para mostrar el salario de los empleados de la tabla de empleados cuyo salario de empleado sea superior a 55000 usando la palabra clave DISTINCT.

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

En la declaración anterior, estamos recuperando el salario del empleado de la tabla del empleado cuyo salario es mayor a 55000, donde estamos eliminando los valores duplicados. Salario distinto mostrará un salario único de la tabla del empleado.

El resultado de la siguiente instrucción:

SALARIO
65000
60000
55500
65500
58500
60500

En el primer ejemplo, hemos obtenido los detalles del empleado cuyo salario es superior a 55000. El resultado de la consulta incluye valores duplicados. Pero en el segundo ejemplo, ejecutamos la misma consulta para mostrar el salario de un empleado cuyo salario es superior a 55000. La consulta muestra el resultado eliminando los valores duplicados porque usamos la palabra clave DISTINCT seguida de la columna de salario.

Ejemplo 3: Escriba una consulta para mostrar la ciudad y el salario de los empleados de la tabla de empleados sin usar una palabra clave distinta.

SELECT SALARY, CITY FROM EMPLOYEES;

Hemos mostrado el salario del empleado y el nombre de la ciudad de la tabla del empleado en la declaración anterior, incluidos los valores duplicados.

El resultado de la siguiente instrucción:

SALARIO CIUDAD
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
65500 PUNE
50000 BOMBAY
55500 PUNE
50500 JAIPUR
58500 BOMBAY
60500 BOMBAY
54500 NOIDA
60000 DELHI
55500 DELHI

Ejemplo 4: Escriba una consulta para mostrar la ciudad y el salario de los empleados de la tabla de empleados utilizando distintas palabras clave.

SELECCIONE SALARIO DISTINTO, CIUDAD DE EMPLEADOS;

Obtuvimos el salario y la ciudad del empleado de la tabla de empleados en la declaración anterior. Pero hemos obtenido un valor único que no se repite en toda la tabla usando la palabra clave DISTINCT.

El resultado de la siguiente instrucción:

SALARIO CIUDAD
65500 PUNE
60000 NOIDA
50500 JAIPUR
55500 CHANDIGARH
50000 BOMBAY
55500 PUNE
58500 BOMBAY
60500 BOMBAY
54500 NOIDA
60000 DELHI
55500 DELHI

Ejemplo 5: Escriba una consulta para mostrar el apellido y el departamento de un empleado de la tabla de empleados donde el nombre del departamento comienza con 'O' sin usar la palabra clave DISTINCT;

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

En la declaración anterior, obtuvimos los apellidos de los empleados, los departamentos de la tabla de empleados cuyos nombres de departamento comienzan con 'O', incluidos los valores duplicados.

El resultado de la siguiente instrucción:

LAST_NAME DEPARTAMENTO
MISHRA ORACULO
SHARMA ORACULO
SHARMA ORACULO
AGARWAL ORACULO

Solo se muestran cuatro registros de aquellos empleados cuyo departamento comienza con 'O'.

Ejemplo 6: Escriba una consulta para mostrar el apellido y el departamento de un empleado de la tabla de empleados donde el nombre del departamento comienza con 'O' usando la palabra clave DISTINCT;

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

Usamos la misma consulta en el ejemplo 5, solo agregamos la palabra clave DISTINCT justo antes del nombre de las columnas que mostrará valores únicos de la tabla del empleado cuyo nombre de departamento comienza con 'O'.

El resultado de la siguiente instrucción:

LAST_NAME DEPARTAMENTO
MISHRA ORACULO
SHARMA ORACULO
AGARWAL ORACULO

La misma consulta que hemos ejecutado en la consulta anterior, agregamos la palabra clave DISTINCT justo antes de las columnas. El resultado que obtenemos difiere del ejemplo anterior porque la pantalla de resultados tiene valores únicos.

Ejemplo 7: Escriba una consulta para contar el salario de los empleados de la tabla de empleados sin usar una palabra clave distinta.

SELECT COUNT (SALARY) AS TOTAL SALARY FROM EMPLOYEES;

En la declaración anterior, hemos contado el número total de salarios de la tabla del empleado, incluidos los valores duplicados.

El resultado de la siguiente instrucción:

SALARIO TOTAL
13

Ejemplo 8: Escriba una consulta para contar el salario de los empleados de la tabla de empleados usando una palabra clave distinta.

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

En la declaración anterior, hemos contado el número total de salarios de la tabla del empleado, excluyendo los valores duplicados.

El resultado de la siguiente instrucción:

SALARIO TOTAL
8