sql >> Database >  >> RDS >> Mysql

selecteer verschillende telling(id) vs selecteer telling(onderscheiden id)

Wanneer u select distinct count(id) dan doe je eigenlijk:

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

Omdat de binnenste query slechts één rij retourneert, is de distinct doet niets. De zoekopdracht telt het aantal rijen in de tabel (nou ja, nauwkeuriger, het aantal rijen waar id is niet null ).

Aan de andere kant, wanneer u dit doet:

select count(distinct id)
from t;

Vervolgens telt de query het aantal verschillende waarden dat id op tafel neemt. Dit lijkt te zijn wat je wilt.



  1. Hoe de volgorde voor ID's op PostgreSQL-tabellen opnieuw in te stellen

  2. Git bash op Windows 7. mysqldump-opdracht werkt niet

  3. Kan geen verbinding maken met lokale MySQL-server via socket

  4. DataTable met Ajax werkt niet goed na gebruik serverSide:true