Mysql
 sql >> Baza danych >  >> RDS >> Mysql

wybierz odrębny licznik (id) vs wybierz liczbę (odrębny identyfikator)

Kiedy robisz select distinct count(id) wtedy w zasadzie robisz:

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

Ponieważ zapytanie wewnętrzne zwraca tylko jeden wiersz, distinct nic nie robi. Zapytanie zlicza liczbę wierszy w tabeli (a dokładniej, liczba wierszy, w których id nie jest null ).

Z drugiej strony, kiedy to zrobisz:

select count(distinct id)
from t;

Następnie zapytanie zlicza liczbę różnych wartości, które id zajmuje w tabeli. Wygląda na to, że tego chcesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyłączenie PDO::ATTR_EMULATE_PREPARES powoduje „nieznany” problem

  2. MySQL:rzutowanie typu NULL na 0

  3. Używanie wyrażenia logicznego w kolejności według klauzuli

  4. Jak zrobić odpowiednią klasę rozszerzenia mysqli z przygotowanych instrukcji?

  5. Czy mogę wyszukiwać bez rozróżniania wielkości liter za pomocą JSON_EXTRACT w MySQL?