sql >> Databáze >  >> RDS >> Database

Jak používat COUNT v SQL?

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

  1. 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.


  1. SQL, při kaskádě odstranění a při kaskádě aktualizace

  2. Jak vyřešit ORA-29913 pomocí externích tabulek

  3. dbms_output size buffer overflow

  4. 2 způsoby, jak vybrat řádky, které odpovídají všem položkám v seznamu (T-SQL)