unico - Seleccionando distintas combinaciones de 2 columnas en mysql
seleccionar varios campos de una tabla en mysql (6)
Actualización 1
Mejor usas esto contra lo de arriba.
SELECT id, col2, col3, col4
FROM yourtable
GROUP BY col2, col3;
Demo
La razón por la que estoy diciendo es porque utilizando CONCAT, no obtengo el resultado deseado en este caso . La primera consulta me está devolviendo 5 filas, sin embargo, CONCAT me está devolviendo 4 filas, lo cual es INCORRECTO.
Espero que tengas mi punto.
Suponiendo que las columnas en la tabla son (id, col2, col3, col4).
SELECT DISTINCT(CONCAT(col2, col3)) as "dummy column", id, col2, col3, col4
FROM yourtable
GROUP BY CONCAT(col2, col3);
O
SELECT id, col2, col3, MIN(col4)
FROM yourtable
GROUP BY col2, col3;
ejemplo de trabajo en vivo
Tengo una tabla mysql que se ve así:
1 value1 value2 3534
2 value1 value1 8456
3 value1 value2 3566
4 value1 value3 7345
5 value2 value3 6734
Necesito una consulta para seleccionar todas las filas con distintas columnas 2 y 3, por ejemplo, la salida que quiero para este ejemplo se verá así:
1 value1 value2 3534
2 value1 value1 8456
4 value1 value3 7345
5 value2 value3 6734
He encontrado algunos ejemplos de cómo hacerlo pero todos seleccionan distintos en cada columna individualmente.
El uso del grupo por método me está devolviendo filas adicionales, donde se comprueba explícitamente cada campo, aunque más tiempo devuelve el mismo número de registros que el recuento (Distintivo ..)
SELECT id, col2, col3, col4
FROM yourtable yt
WHERE id =
(
SELECT MIN(id)
FROM yourtable yt1
WHERE yt.col2 = yt1.col2
AND yt.col3 = yt1.col3
)
Esta consulta asegura que la combinación de column1 y column2 es única, mientras selecciona el valor mínimo de la columna tres
SELECT col1, col2, MIN(col3)
FROM yourTable
GROUP BY col1, col2
La consulta más simple para esto es
SELECT col1, col2, MIN(col3)
FROM myTable
GROUP BY col1, col2
Suponiendo que las columnas de la tabla son (id, col1, col2, col3)
, podría:
SELECT *
FROM YourTable yt
JOIN (
SELECT MIN(id) as minid
FROM YourTable
GROUP BY
col1, col2
) filter
ON filter.minid = yt.id