Database
 sql >> Baza danych >  >> RDS >> Database

Jak używać COUNT w SQL?

Jak używać COUNT w SQL

Wprowadzenie

  • LICZBA () jest funkcją agregującą w SQL.
  • Ta funkcja zlicza liczbę rekordów w tabeli, jeśli warunek nie jest określony.
  • Jeśli warunek jest określony, funkcja count zwraca liczbę rekordów spełniających określony warunek.

Odmiany LICZBA ( ) w SQL

  1. LICZBA(*)

LICZBA (*) służy do wyświetlania liczby rekordów obecnych w tabeli.

Wyniki funkcji LICZBA (*) będą zawierać NULL, a także zduplikowane wpisy.

Składnia:

SELECT COUNT (*) FROM tablename;

Przykład:

Najpierw stworzymy bazę danych o nazwie „employeedb”. Następnie w tej bazie utworzymy tabelę „pracownik” i wstawimy do niej rekordy. Rozważymy tę tabelę i bazę danych we wszystkich kolejnych przykładach.

Liczbę rekordów obecnych w tabeli „pracownik” znajdziemy za pomocą funkcji COUNT ().

 mysql> USE employeedb;
 Database changed
 mysql> SELECT *FROM employee;
 +--------+----------+------------+
 | Emp_ID | Emp_Name | Emp_Salary |
 +--------+----------+------------+
 |      1 | Nikita   |      30000 |
 |      2 | Riddhi   |      25000 |
 |      3 | Nayan    |      45000 |
 |      4 | Shruti   |      15000 |
 |      5 | Anurati  |      55000 |
 |      6 | NULL     |       NULL |
 |      7 | Anurati  |      55000 |
 +--------+----------+------------+
 7 rows in set (0.00 sec) 
mysql> SELECT COUNT(*) FROM employee;

Wyjście:

 +----------+
 | COUNT(*) |
 +----------+
 |        7 |
 +----------+
 1 row in set (0.00 sec) 

W tabeli pracowników znajduje się 7 rekordów.

  • LICZBA (1)

LICZBA (1) służy również do wyświetlania liczby rekordów obecnych w tabeli. Wyniki funkcji LICZBA (1) będą zawierały NULL, a także zduplikowane wpisy. Funkcja ILE.LICZB (1) działa tak samo jak ILE.LICZB (*). Nawet wyniki COUNT (1) i COUNT (*) są również takie same.

Składnia:

SELECT COUNT (1) FROM tablename;

Przykład 1: Wyświetlimy liczbę rekordów obecnych w tabeli pracowników za pomocą LICZBA (1).

mysql> SELECT COUNT(1) FROM employee;

Wyjście:

 +----------+
 | COUNT(1) |
 +----------+
 |        7 |
 +----------+
 1 row in set (0.00 sec) 

W tabeli znajduje się 7 rekordów.

Przykład 2:

Zobaczmy, co się stanie, gdy przekażemy 14 jako parametr do funkcji COUNT().

mysql> SELECT COUNT(14) FROM employee;

Wyjście:

 +-----------+
 | COUNT(14) |
 +-----------+
 |         7 |
 +-----------+
 1 row in set (0.00 sec) 

W tabeli znajduje się 7 rekordów. Tak więc 7 jest wyświetlane jako wynik, mimo że przekazaliśmy 14 jako parametr do funkcji COUNT(). Przekazanie liczby całkowitej do funkcji COUNT() nie oznacza zliczenia tej liczby wierszy w tabeli. Oznacza to po prostu, że 14 zostanie przypisanych do każdego wiersza znajdującego się w tabeli, a następnie wiersze zostaną zsumowane w celu uzyskania sumy i wyświetlone jako wynik.

Przykład 3:

Zobaczmy, co się stanie, gdy przekażemy -14 jako parametr do funkcji COUNT().

mysql> SELECT COUNT(-14) FROM employee;

Wyjście:

 +------------+
 | COUNT(-14) |
 +------------+
 |          7 |
 +------------+
 1 row in set (0.07 sec) 

W tabeli znajduje się 7 rekordów. Tak więc 7 jest wyświetlane jako wynik, mimo że przekazaliśmy -14 jako parametr do funkcji COUNT(). Oznacza to po prostu, że -14 zostanie przypisane do każdego wiersza znajdującego się w tabeli, a następnie wiersze zostaną zsumowane w celu uzyskania sumy i wyświetlone jako wynik.

  • LICZBA(NazwaKolumny)

COUNT(NazwaKolumny) służy do znalezienia liczby rekordów zawierających wartości dla określonej kolumny. Podczas używania funkcji COUNT() z nazwą kolumny jako parametrem, rekordy zawierające wartości NULL dla tego rekordu będą ignorowane.

Składnia:

SELECT COUNT(ColumnName) FROM tablename;

Przykład 1:

Wyświetlimy liczbę rekordów, które istnieją dla Emp_ID.

mysql> SELECT COUNT(Emp_ID) FROM employee;

Wyjście:

 +---------------+
 | COUNT(Emp_ID) |
 +---------------+
 |             7 |
 +---------------+
 1 row in set (0.00 sec) 

Istnieje 7 rekordów, które zawierają unikalny Emp_ID. Dlatego 7 jest wyświetlane jako wynik.

Przykład 2:

Wyświetlimy liczbę rekordów, które istnieją dla Emp_Name.

mysql> SELECT COUNT(Emp_Name) FROM employee;

Wyjście:

 +-----------------+
 | COUNT(Emp_Name) |
 +-----------------+
 |               6 |
 +-----------------+
 1 row in set (0.00 sec) 

W tabeli pracowników znajduje się 7 rekordów, z których jeden zawiera wartości NULL dla Emp_Name. Tak więc ten konkretny rekord jest ignorowany, a 6 jest wyświetlane jako wynik.

Przykład 3:

Wyświetlimy liczbę rekordów, które istnieją dla Emp_Salary.

mysql> SELECT COUNT(Emp_Salary) FROM employee;

Wyjście:

 +-------------------+
 | COUNT(Emp_Salary) |
 +-------------------+
 |                 6 |
 +-------------------+
 1 row in set (0.00 sec) 

W tabeli pracowników znajduje się 7 rekordów, z których jeden zawiera wartości NULL dla Emp_Salary. Tak więc ten konkretny rekord jest ignorowany, a 6 jest wyświetlane jako wynik.

  • LICZBA(DISTINCT NazwaKolumny)

Funkcja COUNT() z parametrem DISTINCT ColumnName służy do wyświetlania liczby rekordów zawierających unikalne wartości dla określonej kolumny. Rekordy zawierające zduplikowane i NULL wartości nie będą liczone.

Składnia:

SELECT COUNT(DISTINCT ColumnName) FROM tablename;

Przykład 1:

Wyświetlimy liczbę rekordów zawierających unikalne wartości dla Emp_ID.

mysql> SELECT COUNT( DISTINCT Emp_ID) FROM employee;

Wyjście:

 +-------------------------+
 | COUNT( DISTINCT Emp_ID) |
 +-------------------------+
 |                       7 |
 +-------------------------+
 1 row in set (0.05 sec) 

Istnieje 7 rekordów, które zawierają unikalne wartości dla Emp_ID.

Przykład 2:

Wyświetlimy liczbę rekordów zawierających unikalne wartości dla Emp_Name.

mysql> SELECT COUNT( DISTINCT Emp_Name) FROM employee;

Wyjście:

 +---------------------------+
 | COUNT( DISTINCT Emp_Name) |
 +---------------------------+
 |                         5 |
 +---------------------------+
 1 row in set (0.00 sec) 

Istnieje 5 rekordów, które zawierają unikalne wartości dla Emp_Name. NULL i zduplikowane wartości w Emp_Name nie będą uwzględniane przez słowo kluczowe DISTINCT.

Przykład 3:

Wyświetlimy liczbę rekordów, które zawierają unikalne wartości dla Emp_Salary.

mysql> SELECT COUNT( DISTINCT Emp_Salary) FROM employee;

Wyjście:

 +-----------------------------+
 | COUNT( DISTINCT Emp_Salary) |
 +-----------------------------+
 |                           5 |
 +-----------------------------+
 1 row in set (0.00 sec) 

Istnieje 5 rekordów, które zawierają unikalne wartości dla Emp_Salary. NULL i zduplikowane wartości w Emp_Salary nie będą uwzględniane przez słowo kluczowe DISTINCT.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odkryj 10 mniej znanych funkcji SQL Diagnostic Manager

  2. Klauzula SQL HAVING dla początkujących

  3. Potencjalne ulepszenia ASPState

  4. Więcej ulepszeń showplanu? Tak proszę!

  5. Indeks klastrowy i nieklastrowy:wyjaśniono 7 najważniejszych punktów