Mysql
 sql >> Base de données >  >> RDS >> Mysql

sélectionner le nombre distinct (id) vs sélectionner le nombre (id distinct)

Lorsque vous faites select distinct count(id) alors vous faites essentiellement :

select distinct cnt
from (select count(id) as cnt from t) t;

Étant donné que la requête interne ne renvoie qu'une seule ligne, le distinct ne fait rien. La requête compte le nombre de lignes dans le tableau (enfin, plus précisément, le nombre de lignes où id n'est pas null ).

En revanche, lorsque vous faites :

select count(distinct id)
from t;

Ensuite, la requête compte le nombre de valeurs différentes que id prend dans le tableau. Cela semble être ce que vous voulez.