Blog
Las consultas SQL distintas (DISTINCT) nos permiten contar el número de valores únicos en una tabla o en un conjunto agrupado de filas.
Para hacer esto, podemos usar la directiva DISTINCT .
Una consulta DISTINCT devolverá un conjunto no duplicado de entradas, si todas las columnas de dos o más filas coinciden exactamente.
Un ejemplo de ello puede ser cuando queremos obtener una lista de personas.
A continuación un ejemplo:
CREATE TABLE notas (nombre TEXT, tema TEXT, nota INTEGER); INSERT INTO notas (nombre, tema, nota) VALUES ("Julian", "CompSci", 97), ("Camilo", "CompSci", 88), ("Federico", "Arte", 99), ("Jonatan", "Historia", 93), ("Julian", "Historia", 82), ("Erica", "Historia", 87), ("Laura", "Fisica", 91), ("Rafael", "Fisica", 84), ("Camilo", "Fisica", 97); SELECT "Todos los nombres", COUNT(nombre) FROM notas; SELECT "nombres unicos", COUNT(DISTINCT nombre) FROM notas; SELECT DISTINCT nombre FROM notas;
Al hacer 3 consultas nos aparecen 1, 2 , 3 donde podemos ver:
- Todos los nombres
- Nombres únicos
- Nombres (lista de nombres distintos)
Una consulta DISTINCT es muy similar a una cláusula GROUP BY con todas las columnas seleccionadas dentro de la cláusula.
Esto hace que todas las filas idénticas se agrupen. La diferencia entre una consulta GROUP BY y una consulta DISTINCT es que no se puede contar el número de ocurrencias idénticas que se han identificado para cada fila con una consulta DISTINCT. Sin embargo, es más eficiente que una consulta GROUP BY la mayoría de las veces.
Ejercicio:
Usaremos esta TABLA para este ejercicio:
CREATE TABLE notas (nombre TEXT, tema TEXT, nota INTEGER); INSERT INTO notas (nombre, tema, nota) VALUES ("Julian", "CompSci", 97), ("Camilo", "CompSci", 88), ("Federico", "Arte", 99), ("Jonatan", "Historia", 93), ("Julian", "Historia", 82), ("Erica", "Historia", 87), ("Laura", "Fisica", 91), ("Rafael", "Fisica", 84), ("Camilo", "Fisica", 97);
Obtenga una lista de todas las materias diferentes de la tabla de calificaciones.
Con SQL puedes emplear muchas funciones para consultar tus datos. Apréndalas todas en nuestro curso y obtén tu certificado: