5.2 Consultation et extraction de données dans une table
81
© Dunod – La photocopie non autorisée est un délit.
donne pas le nombre de clients ayant passé au moins une commande, soit 5, mais
bien le nombre de commandes, c’est-à-dire 7.
select count(NCLI)
from
COMMANDE
La requête suivante produirait évidemment 14 le même résultat.
select distinct count(NCLI)
from
COMMANDE
Pour obtenir le nombre de clients, il faut qualifier l’argument de count du modifieur
distinct; nous voulons en effet compter les valeurs distinctes de NCLI :
select count(distinct NCLI)
from
COMMANDE
L’usage du modifieur distinct est généralisable à plusieurs fonctions agrégatives 15 . Considérons la requête simple suivante, qui compte le nombre de clients, et
dont le résultat est, sans surprise, 16 :
select count(*)
from
CLIENT
La formulation suivante est, elle aussi, sans surprise, mais nous renseigne sur le traitement des valeurs null :
select count(NCLI) as Nombre,
count(NOM) as Noms,
count(LOCALITE) as Localités,
count(CAT) as Catégories
from
CLIENT
La fonction agrégative s’applique à la collection des valeurs non null, à raison
d’une valeur par ligne satisfaisant le critère de sélection éventuel. On comparera ce
résultat à celui de la requête suivante :
select count(distinct NCLI) as Nombre,
count(distinct NOM) as Noms,
count(distinct LOCALITE) as Localités,
count(distinct CAT) as Catégories
from
CLIENT
14. Pourquoi évidemment ?
15. Mais n’est malheureusement pas reconnue par MS Access.
Nombre
Noms
Localités
Catégories
16
16
16
14
81
© Dunod – La photocopie non autorisée est un délit.
donne pas le nombre de clients ayant passé au moins une commande, soit 5, mais
bien le nombre de commandes, c’est-à-dire 7.
select count(NCLI)
from
COMMANDE
La requête suivante produirait évidemment 14 le même résultat.
select distinct count(NCLI)
from
COMMANDE
Pour obtenir le nombre de clients, il faut qualifier l’argument de count du modifieur
distinct; nous voulons en effet compter les valeurs distinctes de NCLI :
select count(distinct NCLI)
from
COMMANDE
L’usage du modifieur distinct est généralisable à plusieurs fonctions agrégatives 15 . Considérons la requête simple suivante, qui compte le nombre de clients, et
dont le résultat est, sans surprise, 16 :
select count(*)
from
CLIENT
La formulation suivante est, elle aussi, sans surprise, mais nous renseigne sur le traitement des valeurs null :
select count(NCLI) as Nombre,
count(NOM) as Noms,
count(LOCALITE) as Localités,
count(CAT) as Catégories
from
CLIENT
La fonction agrégative s’applique à la collection des valeurs non null, à raison
d’une valeur par ligne satisfaisant le critère de sélection éventuel. On comparera ce
résultat à celui de la requête suivante :
select count(distinct NCLI) as Nombre,
count(distinct NOM) as Noms,
count(distinct LOCALITE) as Localités,
count(distinct CAT) as Catégories
from
CLIENT
14. Pourquoi évidemment ?
15. Mais n’est malheureusement pas reconnue par MS Access.
Nombre
Noms
Localités
Catégories
16
16
16
14
