¿Puede obtener la combinación distinta de 2 campos diferentes en una tabla de base de datos? si es así, puede proporcionar el ejemplo de SQL.
84
¿Qué tal simplemente:
select distinct c1, c2 from t
o
select c1, c2, count(*)
from t
group by c1, c2
Operand should contain 1 column(s)
error, su problema es que probablemente lo esté haciendoselect distinct(c1, c2) from t
y no se le permiten corchetes aquí. Así es como llegué aquí.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 en ellos (suma, mínimo, máximo, etc.), y las dos columnas que desea diferenciar deben aparecer en el grupo por cláusula. De lo contrario, es como dice Decker.
fuente
Puede obtener un resultado distinto por dos columnas usando debajo de SQL:
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
fuente
Si aún 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
fuente
Comparte mi estúpido pensamiento:
Tal vez pueda seleccionar distinto solo en c1 pero no en c2, por lo que la sintaxis puede ser
select ([distinct] col)+
dóndedistinct
está un calificador para cada columna.Pero después de pensarlo, encuentro que distinguir en una sola columna es una tontería . Tome la siguiente relación:
Si nosotros
select (distinct A), B
, entonces ¿cuál es el adecuadoB
paraA = 1
?Por lo tanto,
distinct
es un calificativo para astatement
.fuente