Problema:
Le gustaría eliminar las filas duplicadas del conjunto de resultados de una consulta para que cada fila aparezca solo una vez.
Ejemplo:
Nuestra base de datos tiene una tabla llamada clothes con datos en las siguientes columnas:id , name , color y year_produced .
| id | nombre | color | año_producido |
|---|---|---|---|
| 1 | Camiseta | amarillo | 2015 |
| 2 | chaqueta | azul | 2016 |
| 3 | vaqueros | negro | 2015 |
| 4 | chaqueta | azul | 2015 |
| 5 | chaqueta | verde | 2016 |
| 6 | chaqueta | amarillo | 2017 |
| 7 | sombrero | amarillo | 2017 |
Obtengamos los nombres y colores no repetidos de la ropa producida antes de 2017.
Solución:
SELECT DISTINCT name, color FROM clothes WHERE year_produced < 2017;
Aquí está el resultado:
| nombre | color |
|---|---|
| Camiseta | amarillo |
| chaqueta | azul |
| jeans | negro |
| chaqueta | verde |
Observe que el
Discusión:
Simplemente use el DISTINCT palabra clave después de SELECT si desea seleccionar solo filas no repetidas. Esta palabra clave obliga a la consulta a descartar las filas duplicadas, basándose únicamente en las columnas que enumeró.
Este es un ejemplo de cómo seleccionar solo las filas para las que el nombre del elemento es único:
SELECT DISTINCT name FROM clothes WHERE year_produced < 2017;
A diferencia de la consulta anterior, esta devuelve solo tres registros:
| nombre | |
|---|---|
| Camiseta | |
| vaqueros | |
Si bien hay cuatro jeans en la tabla original (dos azules, uno verde y uno amarillo), el artículo aparece solo una vez en este conjunto de resultados gracias a DISTINCT palabra clave.