sql >> Databasteknik >  >> RDS >> Database

Hur använder man COUNT i SQL?

Hur man använder COUNT i SQL

Introduktion

  • ANTAL( ) är en aggregerad funktion i SQL.
  • Denna funktion räknar antalet poster i en tabell om villkoret inte anges.
  • Om villkoret är specificerat returnerar räknefunktionen antalet poster som uppfyller det angivna villkoret.

Variationer av COUNT ( ) i SQL

  1. ANTAL(*)

COUNT (*) används för att visa antalet poster som finns i en tabell.

Resultaten av COUNT (*)-funktionen kommer att innehålla NULL såväl som dubbletter av poster.

Syntax:

SELECT COUNT (*) FROM tablename;

Exempel:

Först kommer vi att skapa en databas med namnet "employeedb". Sedan kommer vi i den databasen att skapa en tabell "anställd" och infoga poster i tabellen. Vi kommer att överväga den här tabellen och databasen för alla efterföljande exempel.

Vi kommer att hitta antalet poster som finns i tabellen "anställd" med funktionen 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;

Utdata:

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

Det finns 7 poster i personaltabellen.

  • ANTAL (1)

COUNT (1) används också för att visa antalet poster som finns i en tabell. Resultaten av COUNT (1)-funktionen kommer att innehålla NULL såväl som dubbletter av poster. COUNT (1)-funktionen fungerar på samma sätt som COUNT (*). Även resultaten för COUNT (1) och COUNT (*) är också desamma.

Syntax:

SELECT COUNT (1) FROM tablename;

Exempel 1: Vi kommer att visa antalet poster som finns i personaltabellen med COUNT (1).

mysql> SELECT COUNT(1) FROM employee;

Utdata:

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

Det finns 7 poster i en tabell.

Exempel 2:

Låt oss se vad som händer när vi skickar 14 som parameter till COUNT()-funktionen.

mysql> SELECT COUNT(14) FROM employee;

Utdata:

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

Det finns 7 poster i en tabell. Så, 7 visas som en utgång även om vi har skickat 14 som en parameter till COUNT()-funktionen. Att skicka ett heltal till en COUNT()-funktion betyder inte att man räknar antalet rader i tabellen. Det betyder helt enkelt att 14 kommer att tilldelas varje rad som finns i en tabell och att raderna kommer att summeras för att ge en total och visas som en utdata.

Exempel 3:

Låt oss se vad som händer när vi skickar -14 som en parameter till COUNT()-funktionen.

mysql> SELECT COUNT(-14) FROM employee;

Utdata:

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

Det finns 7 poster i en tabell. Så, 7 visas som en utgång även om vi har skickat -14 som en parameter till COUNT()-funktionen. Det betyder helt enkelt -14 kommer att tilldelas varje rad som finns i en tabell och att raderna kommer att summeras för att ge en total och visas som en utdata.

  • ANTAL(kolumnnamn)

COUNT(ColumnName) används för att hitta antalet poster som innehåller värden för den angivna kolumnen. När du använder COUNT()-funktionen med kolumnnamn som parameter, kommer de poster som innehåller NULL-värden för den posten att ignoreras.

Syntax:

SELECT COUNT(ColumnName) FROM tablename;

Exempel 1:

Vi kommer att visa antalet poster som finns för Emp_ID.

mysql> SELECT COUNT(Emp_ID) FROM employee;

Utdata:

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

Det finns 7 poster som innehåller unikt Emp_ID. Därför visas 7 som en utgång.

Exempel 2:

Vi kommer att visa antalet poster som finns för Emp_Name.

mysql> SELECT COUNT(Emp_Name) FROM employee;

Utdata:

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

Det finns 7 poster i personaltabellen, bland vilka en post innehåller NULL-värden för Emp_Name. Så den specifika posten ignoreras och 6 visas som en utdata.

Exempel 3:

Vi kommer att visa antalet poster som finns för Emp_Salary.

mysql> SELECT COUNT(Emp_Salary) FROM employee;

Utdata:

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

Det finns 7 poster i personaltabellen, bland vilka en post innehåller NULL-värden för Emp_Salary. Så den specifika posten ignoreras och 6 visas som en utdata.

  • COUNT(DISTINCT ColumnnName)

COUNT()-funktionen med DISTINCT ColumnName som parameter används för att visa antalet poster som innehåller unika värden för en specifik kolumn. Poster som innehåller dubbletter och NULL-värden kommer inte att räknas.

Syntax:

SELECT COUNT(DISTINCT ColumnName) FROM tablename;

Exempel 1:

Vi kommer att visa antalet poster som innehåller unika värden för Emp_ID.

mysql> SELECT COUNT( DISTINCT Emp_ID) FROM employee;

Utdata:

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

Det finns 7 poster som innehåller unika värden för Emp_ID.

Exempel 2:

Vi kommer att visa antalet poster som innehåller unika värden för Emp_Name.

mysql> SELECT COUNT( DISTINCT Emp_Name) FROM employee;

Utdata:

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

Det finns 5 poster som innehåller unika värden för Emp_Name. NULL och dubbletter av värden i Emp_Name kommer inte att beaktas av nyckelordet DISTINCT.

Exempel 3:

Vi kommer att visa antalet poster som innehåller unika värden för Emp_Salary.

mysql> SELECT COUNT( DISTINCT Emp_Salary) FROM employee;

Utdata:

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

Det finns 5 poster som innehåller unika värden för Emp_Salary. NULL och dubbletter av värden i Emp_Salary kommer inte att beaktas av nyckelordet DISTINCT.


  1. Hur man krypterar en lagrad procedur i SQL Server

  2. Kontrollera statistikmål i PostgreSQL

  3. Implementering av SQL Server Performance Indicator för frågor, lagrade procedurer och triggers

  4. Välj den andra raden i en tabell med hjälp av rownum