jueves, 28 de julio de 2016

Uso de DISTINCT en MYSQL (MariaDB)

Introducción

La clausula DISTINCT se utiliza en MySQL para seleccionar los registros únicos, o simplemente quitar duplicados en una consulta, solo mostrará los valores una sola vez, y no todas las veces que se muestren.

Buenas tardes queridos lectores, como bien dice la introducción, el día de hoy hablaremos sobre la clausula DISTINCT, esta clausula siempre se utilizará con el SELECT, y como les decía nos mostrará los valores únicos, omitiendo duplicados, pero basta ya de teoría, vamos a ir directamente a hacerlo, que es lo que nos gusta y lo que nos hace aprender, para eso consideremos el siguiente ejemplo;

Ejercicio 1

Realizar una consulta que obtenga los días que hubo partidos del torneo de Clausura MX 2016 utilizando la clausula DISTINCT

Primeramente consideremos ver las fechas de los partidos que hubo en ese torneo, esto lo haremos mediante la siguiente consulta

SELECT FECHA
FROM PARTIDOS
WHERE IDTORNEO = (SELECT IDTORNEO FROM TORNEOS WHERE NOMBRE = 'CLAUSURA 2016')

Al ejecutar esta consulta obtenemos el siguiente resultado:


Como ven, en este ejemplo, aparecen muchas fechas que se repiten, ¿pero porque?, porque estamos trayendo todos los registros de la tabla partidos, sin filtrar ningún dato, por lo cual, nos está mostrando las fechas de los partidos jugados, lo que queremos nosotros es que no se repitan las fechas, de manera que solo muestre una sola vez por ejemplo 2016-01-09, para esto tenemos dos opciones:

La primera es utilizando la clausula GROUP BY, y la otra es mediante la clausula DISTINCT. En este ejemplo veremos la clausula DISTINCT










SELECT DISTINCT(FECHA)
FROM PARTIDOS
WHERE IDTORNEO = (SELECT IDTORNEO FROM TORNEOS WHERE NOMBRE = 'CLAUSURA 2016')

Al ejecutar la consulta, obtenemos el siguiente resultado:

 
Como ven, la palabra DISTINCT dentro del SELECT nos obliga a mostrar únicamente los valores que no se repiten o que son distintos y entre paréntesis el campo que queremos mostrar sin duplicados, en este caso la fecha, como pueden observar, únicamente aparece una fecha única, y no una fecha por partido,














Ejercicio 2
Realizar una consulta que obtenga los días que hubo partidos del torneo de Clausura MX 2016 utilizando la clausula GROUP BY

SELECT FECHA
FROM PARTIDOS
WHERE IDTORNEO = (SELECT IDTORNEO FROM TORNEOS WHERE NOMBRE = 'CLAUSURA 2016')
GROUP BY FECHA

Como pueden ver, esta consulta es idéntica a la anterior, ya habíamos visto con anterioridad en otros post el uso de la clausula ORDER BY, si no lo recuerdan les dejo el enlace


Hasta aquí el post queridos amigos, espero haya sido de su agrado y de su interés; espero compartan, comenten o den +1 en algún anuncio publicitario. Saludos













Banderas de Visitantes

Flag Counter