Pouvez-vous obtenir la combinaison distincte de 2 champs différents dans une table de base de données? Si oui, pouvez-vous fournir l'exemple SQL?.
Pourquoi pas simplement:
select distinct c1, c2 from t
ou
select c1, c2, count(*)
from t
group by c1, c2
Si vous voulez des valeurs distinctes pour deux champs seulement, et renvoyer d'autres champs avec elles, les autres champs doivent avoir une sorte d'agrégation (somme, min, max, etc.), et les deux colonnes que vous voulez distinguer doivent apparaître dans la clause group by. Sinon, c'est comme le dit Decker.
Vous pouvez obtenir un résultat distinct par deux colonnes utilisées ci-dessous SQL:
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
Si vous souhaitez toujours grouper uniquement par une colonne (comme je le souhaitais), vous pouvez imbriquer la requête:
select c1, count(*) from (select distinct c1, c2 from t) group by c1
Partagez ma pensée stupide:
Peut-être que je ne peux sélectionner distinct que sur c1 mais pas sur c2, la syntaxe peut donc être select ([distinct] col)+
où distinct
est un qualificatif pour chaque colonne.
Mais après réflexion, je trouve que distinct sur une seule colonne est un non-sens. Prenons la relation suivante:
| A | B
__________
1| 1 | 2
2| 1 | 1
Si nous select (distinct A), B
, alors quel est le bon B
pour A = 1
?
Ainsi, distinct
est un qualificatif pour un statement
.