Pregunta

¿Puede obtener la combinación distintiva de 2 campos diferentes en una tabla de base de datos? Si es así, ¿puede proporcionar el ejemplo de SQL.

¿Fue útil?

Solución

¿Qué tal simplemente:

select distinct c1, c2 from t

o

select c1, c2, count(*)
from t
group by c1, c2

Otros consejos

Si desea valores distintos de solo dos campos, además de devolver otros campos con ellos, entonces los otros campos deben tener algún tipo de agregación (suma, mínimo, máximo, etc.), y las dos columnas que desea distintas debe aparecer en el grupo por cláusula De lo contrario, es justo como dice Decker.

Puede obtener resultados distintos mediante el uso de dos columnas debajo de SQL:

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE

Si todavía desea agrupar solo por una columna (como quería), puede anidar la consulta:

select c1, count(*) from (select distinct c1, c2 from t) group by c1

Comparta mi estúpido pensamiento:

Quizás pueda seleccionar distintivo solo en c1 pero no en c2, por lo que la sintaxis puede ser select ([distinct] col) + donde distinct es un calificador para cada columna.

Pero después de pensarlo, encuentro que distinto en una sola columna no tiene sentido . Tome la siguiente relación:

   | A | B
__________
  1| 1 | 2
  2| 1 | 1

Si seleccionamos (distinto A), B , ¿cuál es el B apropiado para A = 1 ?

Por lo tanto, distinct es un calificador para una instrucción .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top