Hoe COUNT te gebruiken in SQL
Inleiding
- AANTAL( ) is een aggregatiefunctie in SQL.
- Deze functie telt het aantal records in een tabel als de voorwaarde niet is opgegeven.
- Als de voorwaarde is opgegeven, retourneert de count-functie het aantal records dat aan de opgegeven voorwaarde voldoet.
Variaties van COUNT ( ) in SQL
- COUNT(*)
COUNT (*) wordt gebruikt om het aantal records in een tabel weer te geven.
De resultaten van de COUNT (*)-functie bevatten zowel NULL als dubbele vermeldingen.
Syntaxis:
SELECT COUNT (*) FROM tablename;
Voorbeeld:
Eerst zullen we een database maken met de naam “employeedb”. Vervolgens zullen we in die database een tabel "werknemer" maken en records in de tabel invoegen. We zullen deze tabel en database in overweging nemen voor alle volgende voorbeelden.
We zullen het aantal records vinden dat aanwezig is in de 'werknemer'-tabel met behulp van de AANTAL () functie.
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;
Uitvoer:
+----------+ | COUNT(*) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Er zijn 7 records aanwezig in de werknemerstabel.
- COUNT (1)
COUNT (1) wordt ook gebruikt om het aantal records in een tabel weer te geven. De resultaten van de functie COUNT (1) bevatten zowel NULL als dubbele vermeldingen. COUNT (1) functie werkt hetzelfde als COUNT (*). Zelfs de resultaten van COUNT (1) en COUNT (*) zijn ook hetzelfde.
Syntaxis:
SELECT COUNT (1) FROM tablename;
Voorbeeld 1: We zullen het aantal records in de werknemerstabel weergeven met COUNT (1).
mysql> SELECT COUNT(1) FROM employee;
Uitvoer:
+----------+ | COUNT(1) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Er zijn 7 records aanwezig in een tabel.
Voorbeeld 2:
Laten we eens kijken wat er gebeurt als we 14 als parameter doorgeven aan de functie AANTAL() .
mysql> SELECT COUNT(14) FROM employee;
Uitvoer:
+-----------+ | COUNT(14) | +-----------+ | 7 | +-----------+ 1 row in set (0.00 sec)
Er zijn 7 records aanwezig in een tabel. Dus 7 wordt weergegeven als een uitvoer, ook al hebben we 14 als parameter doorgegeven aan de functie AANTAL (). Het doorgeven van een geheel getal aan een COUNT()-functie betekent niet dat het aantal rijen in de tabel moet worden geteld. Het betekent eenvoudigweg dat 14 wordt toegewezen aan elke rij in een tabel en dat die rijen vervolgens worden opgeteld om een totaal te geven en als uitvoer worden weergegeven.
Voorbeeld 3:
Laten we eens kijken wat er gebeurt als we -14 doorgeven als parameter aan de COUNT() functie.
mysql> SELECT COUNT(-14) FROM employee;
Uitvoer:
+------------+ | COUNT(-14) | +------------+ | 7 | +------------+ 1 row in set (0.07 sec)
Er zijn 7 records aanwezig in een tabel. Dus 7 wordt weergegeven als een uitvoer, ook al hebben we -14 als parameter doorgegeven aan de COUNT()-functie. Het betekent eenvoudigweg dat -14 wordt toegewezen aan elke rij in een tabel en dat die rijen vervolgens worden opgeteld om een totaal te geven en als uitvoer worden weergegeven.
- COUNT(kolomnaam)
COUNT(ColumnName) wordt gebruikt om het aantal records te vinden dat waarden voor de opgegeven kolom bevat. Bij gebruik van de functie COUNT() met kolomnaam als parameter, worden de records die NULL-waarden voor die record bevatten, genegeerd.
Syntaxis:
SELECT COUNT(ColumnName) FROM tablename;
Voorbeeld 1:
We zullen het aantal records weergeven dat bestaat voor Emp_ID.
mysql> SELECT COUNT(Emp_ID) FROM employee;
Uitvoer:
+---------------+ | COUNT(Emp_ID) | +---------------+ | 7 | +---------------+ 1 row in set (0.00 sec)
Er zijn 7 records die een unieke Emp_ID bevatten. Daarom wordt 7 weergegeven als uitvoer.
Voorbeeld 2:
We zullen het aantal records weergeven dat bestaat voor Emp_Name.
mysql> SELECT COUNT(Emp_Name) FROM employee;
Uitvoer:
+-----------------+ | COUNT(Emp_Name) | +-----------------+ | 6 | +-----------------+ 1 row in set (0.00 sec)
Er zijn 7 records in de werknemerstabel, waaronder één record NULL-waarden voor Emp_Name. Dus dat specifieke record wordt genegeerd en 6 wordt weergegeven als uitvoer.
Voorbeeld 3:
We zullen het aantal records weergeven dat bestaat voor Emp_Salary.
mysql> SELECT COUNT(Emp_Salary) FROM employee;
Uitvoer:
+-------------------+ | COUNT(Emp_Salary) | +-------------------+ | 6 | +-------------------+ 1 row in set (0.00 sec)
Er zijn 7 records in de werknemerstabel waarvan één record NULL-waarden voor Emp_Salary bevat. Dus dat specifieke record wordt genegeerd en 6 wordt weergegeven als uitvoer.
- COUNT(DISTINCT ColumnnName)
De functie COUNT() met DISTINCT ColumnName als parameter wordt gebruikt om het aantal records weer te geven dat unieke waarden voor een specifieke kolom bevat. Records die dubbele en NULL-waarden bevatten, worden niet meegeteld.
Syntaxis:
SELECT COUNT(DISTINCT ColumnName) FROM tablename;
Voorbeeld 1:
We zullen het aantal records weergeven dat unieke waarden voor Emp_ID bevat.
mysql> SELECT COUNT( DISTINCT Emp_ID) FROM employee;
Uitvoer:
+-------------------------+ | COUNT( DISTINCT Emp_ID) | +-------------------------+ | 7 | +-------------------------+ 1 row in set (0.05 sec)
Er zijn 7 records die unieke waarden bevatten voor Emp_ID.
Voorbeeld 2:
We zullen het aantal records weergeven dat unieke waarden voor Emp_Name bevat.
mysql> SELECT COUNT( DISTINCT Emp_Name) FROM employee;
Uitvoer:
+---------------------------+ | COUNT( DISTINCT Emp_Name) | +---------------------------+ | 5 | +---------------------------+ 1 row in set (0.00 sec)
Er zijn 5 records die unieke waarden bevatten voor Emp_Name. NULL en dubbele waarden in Emp_Name worden niet in aanmerking genomen door het DISTINCT-sleutelwoord.
Voorbeeld 3:
We zullen het aantal records weergeven dat unieke waarden voor Emp_Salary bevat.
mysql> SELECT COUNT( DISTINCT Emp_Salary) FROM employee;
Uitvoer:
+-----------------------------+ | COUNT( DISTINCT Emp_Salary) | +-----------------------------+ | 5 | +-----------------------------+ 1 row in set (0.00 sec)
Er zijn 5 records die unieke waarden voor Emp_Salary bevatten. NULL en dubbele waarden in Emp_Salary worden niet in aanmerking genomen door het DISTINCT-sleutelwoord.