Réduction de groupes de lignes
Mise à jour : novembre 2007
Vous pouvez créer un résultat de requête dans lequel chaque ligne de résultat correspond à tout un groupe de lignes des données d'origine. La réduction de lignes donne les possibilités suivantes :
Élimination de lignes en double Certaines requêtes donnent des ensembles de résultats faisant apparaître plusieurs lignes identiques. Par exemple, vous pouvez créer un ensemble de résultats où les lignes citent une ville et son état si un auteur quelconque y réside, mais si plusieurs auteurs résident dans la même ville, vous obtiendrez plusieurs lignes identiques. L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT city, state FROM authors
L'ensemble des résultats généré par la requête ci-dessus n'est pas très utile. Si quatre auteurs résident dans la même ville, l'ensemble des résultats inclut quatre lignes identiques. Comme l'ensemble des résultats n'inclut pas d'autres colonnes que celles de la ville et de l'état, il n'y a aucun moyen de faire une distinction entre les lignes identiques obtenues. Une façon d'éviter ces doublons serait d'inclure d'autres colonnes pour établir une distinction entre les lignes. Par exemple, si vous incluez le nom de l'auteur, les risques de doublons diminuent (les seuls doublons seront les lignes dans lesquelles deux auteurs de même nom résident dans la même ville). L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT city, state, fname, minit, lname FROM authors
Si la requête précédente élimine le symptôme, elle ne résout cependant pas vraiment le problème. Vous pouvez obtenir un ensemble de résultats sans doublon, mais il ne s'agit plus d'un ensemble de résultats sur les villes. Pour éliminer les doublons de l'ensemble des résultats d'origine et lui garder son but, les villes dans lesquelles réside un auteur, créez une requête ne retournant des lignes que lorsqu'elles sont différentes les unes des autres. L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT DISTINCT city, state FROM authors
Pour plus de détails sur l'élimination des doublons, consultez Comment : exclure les doublons.
Calculs sur des groupes de lignes Vous pouvez synthétiser des informations par groupe de lignes. Par exemple, il serait possible de demander un ensemble de résultats dans lequel chaque ligne indiquerait le nom d'une ville si elle contient un auteur, ainsi que le nombre d'auteurs résidant dans la ville. L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state
Pour plus d'informations sur les calculs possibles sur des groupes de lignes, consultez Synthèse des résultats d'une requête et Tri et regroupement des résultats de la requête.
Utilisation de critères de sélection pour inclure des groupes de lignes Par exemple, il serait possible de demander un ensemble de résultats dans lequel chaque ligne indiquerait le nom d'une ville et son état si elle contient plusieurs auteurs, ainsi que le nombre d'auteurs résidant dans la ville. L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state HAVING COUNT(*) > 1
Pour plus d'informations sur la façon d'appliquer des critères de sélection aux groupes de lignes, consultez Comment : spécifier des conditions pour des groupes et Comment : utiliser les clauses HAVING et WHERE dans la même requête.