2010-06-22 37 views
6

He estado buscando mucho y realmente no he encontrado una respuesta a mi problema MYSQL.Usando SELECT DISTINCT en MYSQL

SELECT DISTINCT name, type, state, country FROM table 

Resultados en 1.795 registros

SELECT DISTINCT name FROM table 

Resultados en 1.504 registros

de cada duplicado "nombre" ... "tipo", "Estado", "país" no se emparejan en cada registro.

Tratando de encontrar la manera de seleccionar la fila asociada al nombre distinto, sin comprobar por ser distinto o no

+0

No tiene nada que ver con PHP, por lo que elimina la etiqueta – jigfox

+2

Me temo que estoy teniendo algunas dificultades para entender sus preguntas. ¿Podría publicar una versión reducida de los datos y explicar qué es lo que quiere? – Chowlett

+0

Algo similar: http://stackoverflow.com/questions/54418/how-do-i-or-can-i-select-distinct-on-multiple-columns-postgresql – jigfox

Respuesta

16
SELECT name, type, state, country FROM table GROUP BY name; 

debe hacer el truco.

+0

¿cuál sería la consulta completa para SELECCIONAR DISTINCT por grupo? – ZaneDeFazio

+0

No estoy muy seguro de lo que está pidiendo. Probablemente es mi culpa, no he dormido hoy :-) – cypher

+2

no es necesario distinguir, para una columnas que se agrupan. como se define 'group by name' resume todo con el mismo' nombre'. por lo que cada 'nombre' es único en el resultado – jigfox

1

Si desea un nombre distinto, debe decidir cuál de los múltiples valores que pueden aparecer para cada nombre distinto que desee. Por ejemplo, es posible que desee minimals, o recuentos:

SELECT name, min(type), min(state), count(country) FROM table GROUP BY name

Cuestiones relacionadas