sql >> Databáze >  >> RDS >> Mysql

vybrat odlišný počet (id) vs vybrat počet (distinct id)

Když select distinct count(id) pak v podstatě děláte:

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

Protože vnitřní dotaz vrací pouze jeden řádek, distinct nic nedělá. Dotaz počítá počet řádků v tabulce (no, přesněji, počet řádků, kde id není null ).

Na druhou stranu, když to uděláte:

select count(distinct id)
from t;

Potom dotaz spočítá počet různých hodnot, které id přebírá v tabulce. Zdá se, že toto je to, co chcete.



  1. Chyba analýzy:chyba syntaxe, neočekávané „“ (T_ENCAPSED_AND_WHITESPACE)

  2. Tabulka jako argument funkce PostgreSQL

  3. Jádro Entity Framework – Obsahuje Rozlišují se malá a velká písmena?

  4. Jak odstranit koncové mezery za názvem měsíce v Oracle