Jak používat COUNT v SQL
Úvod
- POČET( ) je agregační funkce v SQL.
- Tato funkce počítá počet záznamů v tabulce, pokud není zadána podmínka.
- Pokud je podmínka zadána, funkce count vrátí počet záznamů, které splňují zadanou podmínku.
Varianty COUNT ( ) v SQL
- POČET(*)
POČET (*) se používá k zobrazení počtu záznamů přítomných v tabulce.
Výsledky funkce COUNT (*) budou obsahovat NULL a také duplicitní položky.
Syntaxe:
SELECT COUNT (*) FROM tablename;
Příklad:
Nejprve vytvoříme databázi s názvem „employeedb“. Poté v této databázi vytvoříme tabulku „zaměstnanec“ a do tabulky vložíme záznamy. Tuto tabulku a databázi zvážíme pro všechny následující příklady.
Pomocí funkce COUNT () zjistíme počet záznamů přítomných v tabulce ‚zaměstnanec‘.
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;
Výstup:
+----------+ | COUNT(*) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
V tabulce zaměstnanců je 7 záznamů.
- POČET (1)
COUNT (1) se také používá k zobrazení počtu záznamů přítomných v tabulce. Výsledky funkce COUNT (1) budou obsahovat NULL a také duplicitní položky. Funkce COUNT (1) funguje stejně jako funkce COUNT (*). Dokonce i výsledky COUNT (1) a COUNT (*) jsou také stejné.
Syntaxe:
SELECT COUNT (1) FROM tablename;
Příklad 1: Počet záznamů přítomných v tabulce zaměstnanců zobrazíme pomocí COUNT (1).
mysql> SELECT COUNT(1) FROM employee;
Výstup:
+----------+ | COUNT(1) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
V tabulce je 7 záznamů.
Příklad 2:
Podívejme se, co se stane, když předáme 14 jako parametr funkci COUNT().
mysql> SELECT COUNT(14) FROM employee;
Výstup:
+-----------+ | COUNT(14) | +-----------+ | 7 | +-----------+ 1 row in set (0.00 sec)
V tabulce je 7 záznamů. Takže 7 se zobrazí jako výstup, i když jsme předali 14 jako parametr funkci COUNT(). Předání celého čísla funkci COUNT() neznamená počítat tento počet řádků v tabulce. Jednoduše to znamená, že každému řádku v tabulce bude přiřazeno 14 a poté budou řádky sečteny, aby se získal celkový počet, a zobrazeny jako výstup.
Příklad 3:
Podívejme se, co se stane, když předáme -14 jako parametr funkci COUNT().
mysql> SELECT COUNT(-14) FROM employee;
Výstup:
+------------+ | COUNT(-14) | +------------+ | 7 | +------------+ 1 row in set (0.07 sec)
V tabulce je 7 záznamů. Takže 7 se zobrazí jako výstup, i když jsme funkci COUNT() předali -14 jako parametr. Jednoduše to znamená, že každému řádku v tabulce bude přiřazeno -14 a pak budou řádky sečteny, aby byl získán součet, a zobrazeny jako výstup.
- POČET(Název sloupce)
COUNT(ColumnName) se používá k nalezení počtu záznamů, které obsahují hodnoty pro zadaný sloupec. Při použití funkce COUNT() s názvem sloupce jako parametrem budou záznamy obsahující hodnoty NULL pro daný záznam ignorovány.
Syntaxe:
SELECT COUNT(ColumnName) FROM tablename;
Příklad 1:
Zobrazíme počet záznamů, které pro Emp_ID existují.
mysql> SELECT COUNT(Emp_ID) FROM employee;
Výstup:
+---------------+ | COUNT(Emp_ID) | +---------------+ | 7 | +---------------+ 1 row in set (0.00 sec)
Existuje 7 záznamů, které obsahují jedinečné Emp_ID. Proto se jako výstup zobrazí 7.
Příklad 2:
Zobrazíme počet záznamů, které existují pro Emp_Name.
mysql> SELECT COUNT(Emp_Name) FROM employee;
Výstup:
+-----------------+ | COUNT(Emp_Name) | +-----------------+ | 6 | +-----------------+ 1 row in set (0.00 sec)
V tabulce zaměstnanců je 7 záznamů, z nichž jeden obsahuje hodnoty NULL pro Emp_Name. Tento konkrétní záznam je tedy ignorován a jako výstup se zobrazí 6.
Příklad 3:
Zobrazíme počet záznamů, které existují pro Emp_Salary.
mysql> SELECT COUNT(Emp_Salary) FROM employee;
Výstup:
+-------------------+ | COUNT(Emp_Salary) | +-------------------+ | 6 | +-------------------+ 1 row in set (0.00 sec)
V tabulce zaměstnanců je 7 záznamů, z nichž jeden obsahuje hodnoty NULL pro Emp_Salary. Tento konkrétní záznam je tedy ignorován a jako výstup se zobrazí 6.
- POČET (DISTINCT ColumnnName)
Funkce COUNT() s parametrem DISTINCT ColumnName se používá k zobrazení počtu záznamů, které obsahují jedinečné hodnoty pro konkrétní sloupec. Záznamy, které obsahují duplicitní hodnoty a hodnoty NULL, nebudou započítány.
Syntaxe:
SELECT COUNT(DISTINCT ColumnName) FROM tablename;
Příklad 1:
Zobrazíme počet záznamů, které obsahují jedinečné hodnoty pro Emp_ID.
mysql> SELECT COUNT( DISTINCT Emp_ID) FROM employee;
Výstup:
+-------------------------+ | COUNT( DISTINCT Emp_ID) | +-------------------------+ | 7 | +-------------------------+ 1 row in set (0.05 sec)
Existuje 7 záznamů, které obsahují jedinečné hodnoty pro Emp_ID.
Příklad 2:
Zobrazíme počet záznamů, které obsahují jedinečné hodnoty pro Emp_Name.
mysql> SELECT COUNT( DISTINCT Emp_Name) FROM employee;
Výstup:
+---------------------------+ | COUNT( DISTINCT Emp_Name) | +---------------------------+ | 5 | +---------------------------+ 1 row in set (0.00 sec)
Existuje 5 záznamů, které obsahují jedinečné hodnoty pro Emp_Name. NULL a duplicitní hodnoty v Emp_Name nebudou u klíčového slova DISTINCT brány v úvahu.
Příklad 3:
Zobrazíme počet záznamů, které obsahují jedinečné hodnoty pro Emp_Salary.
mysql> SELECT COUNT( DISTINCT Emp_Salary) FROM employee;
Výstup:
+-----------------------------+ | COUNT( DISTINCT Emp_Salary) | +-----------------------------+ | 5 | +-----------------------------+ 1 row in set (0.00 sec)
Existuje 5 záznamů, které obsahují jedinečné hodnoty pro Emp_Salary. NULL a duplicitní hodnoty v Emp_Salary nebudou u klíčového slova DISTINCT zohledněny.