Laatste update op 26 februari 2020 08:07:42 (UTC / GMT +8 uur)
COUNT () functie
De SQL COUNT () functie retourneert het aantal rijen in een tabel dat voldoet aan de criteria gespecificeerd in de WHERE-clausule. Het stelt het aantal rijen of niet-NULL kolomwaarden in.
COUNT () retourneert 0 als er geen overeenkomende rijen waren.
Syntaxis:
COUNT(*)COUNT( expression )
De bovenstaande syntaxis is de algemene SQL 2003 ANSI-standaardsyntaxis. Dit helpt om de manier waarop SQL COUNT () Functie wordt gebruikt te begrijpen. Maar verschillende databaseleveranciers kunnen verschillende manieren hebben om de COUNT () -functie toe te passen.
Balg, u kunt zien dat MySQL, PostgreSQL en Microsoft SQL Server dezelfde syntaxis volgen als hierboven gegeven. Maar DB2 en Oracle verschillen enigszins.
Over het algemeen kunt u * of ALL of DISTINCT of een uitdrukking samen met COUNT gebruiken om het aantal rijen t.o.v. een voorwaarde of alle rijen, afhankelijk van de argumenten die u gebruikt samen met de functie COUNT ().
DBMS-ondersteuning: COUNT () functie
DBMS | Commando |
MySQL | Ondersteund |
PostgreSQL | Ondersteund |
SQL Server | Ondersteund |
Oracle | Ondersteund |
DB2 en Oracle Syntax:
COUNT ({*| expression}) OVER (window_clause)
Parameters:
Naam | Beschrijving |
---|---|
ALL | Geldt voor alle waarden. ALL geeft het aantal niet-NULL-waarden terug. |
DISTINCT | Genegeerde dubbele waarden en COUNT retourneert het aantal unieke niet-volledige waarden. |
expression | Expressie die bestaat uit een enkele constante, variabele, scalaire functie of kolomnaam en kan ook de onderdelen zijn van een SQL-query die waarden met andere waarden vergelijkt. Uitdrukking van elk type behalve tekst of afbeelding. Geaggregeerde functies en subquery’s zijn niet toegestaan. |
* | TELT alle rijen in de doeltabel, of ze nu NULL’s bevatten of niet. |
Syntaxisdiagram – COUNT () functie
Op de volgende pagina’s hebben we besproken hoe we COUNT () kunnen toepassen met verschillende SQL-clausules. Voor die applicaties hebben we Oracle 10g Express Edition gebruikt.
Een belangrijk ding over COUNT () functie:
Wanneer de * wordt gebruikt voor COUNT (), alle records (rijen) worden COUNT geteld als bepaalde inhoud NULL is, maar COUNT (kolomnaam) geen COUNT record als het veld NULL is. Zie de volgende voorbeelden:
SQL COUNT rijen in een tabel
In het volgende voorbeeld wordt een asterisk (*) gebruikt gevolgd door de SQL COUNT () die alle rijen aangeeft van de tabel, zelfs als er een NULL-waarde is.
Voorbeeldtabel: bestellingen
Om het aantal rijen in de “bestellingen” -tabel te krijgen , kan de volgende SQL-instructie worden gebruikt:
SQL-code:
Uitvoer:
COUNT(*)--------- 34
Grafische presentatie:
Selecteer COUNT (*) uit meerdere tabellen
De volgende zoekopdracht COUNT het aantal rijen van twee verschillende tabellen (hier gebruiken we werknemers en afdelingen) met het COUNT (*) commando.
SQL-code:
Uitvoer:
TOTAL_EMPLOYEES NO_OF_DEPARTMENTS--------------- ----------------- 107 27
SQL COUNT () met kolomnaam
In dit voorbeeld sluit de functie SQL COUNT () de NULL-waarden uit voor een specifieke kolom indien gespecificeerd de kolom als een argument tussen haakjes van COUNT func tie.
Voorbeeldtabel: listofitem
Om het aantal rijen in de “listofitem” -tabel te krijgen met de volgende voorwaarde –
1. COUNT aantal rijen voor de kolom “coname”
de volgende SQL-instructie kan worden gebruikt:
SQL-code:
Uitvoer:
COUNT(CONAME)------------- 2
Leg uit:
De bovenstaande instructie COUNT die rijen voor de “coname” -kolom die niet NULL zijn .
SQL COUNT rijen met door de gebruiker gedefinieerde kolomkop
Om het aantal rijen in de “orders” -tabel te krijgen met de volgende voorwaarde –
1. resultaat moeten worden weergegeven met de kop “Aantal rijen”,
de volgende SQL-instructie kan worden gebruikt:
SQL-code:
Uitvoer:
Number of Rows-------------- 36
SQL COUNT () met where-clausule
De WHERE-clausule kan samen met SQL COUNT () functie om specifieke records uit een tabel te selecteren op basis van een bepaalde voorwaarde.
Voorbeeld:
Voorbeeldtabel: bestellingen
Om het aantal rijen in de “orders” -tabel te krijgen met de volgende voorwaarde –
1.ord_amount ten opzichte van de order is meer dan 1500,
de volgende SQL-instructie kan worden gebruikt:
Uitvoer:
Number of Rows-------------- 22
Toepassing van COUNT () functie
In de volgende pagina’s hebben we besproken hoe COUNT () kan worden toegepast met verschillende SQL-clausules. Voor die toepassingen hebben we Oracle 10g Express Edition gebruikt.
De pagina COUNT met DISTINCT bespreekt hoe de functie COUNT met DISTINCT kan worden toegepast en bespreekt ook hoe de functie COUNT met de clausule ALL moet worden toegepast. In tegenstelling tot het gebruik van *, wanneer ALL wordt gebruikt, worden NULL-waarden niet geselecteerd.
COUNT HAVING-pagina bespreekt hoe de COUNT-functie kan worden toegepast met de HAVING-clausule en HAVING en GROUP BY.
COUNT met GROUP BY-pagina bespreekt hoe de COUNT-functie met GROUP BY in oplopende volgorde en in aflopende volgorde kan worden toegepast.
Opmerking: de uitvoer van de genoemde SQL-instructie die hier wordt weergegeven, wordt uitgevoerd met behulp van Oracle Database 10g Express Edition
Hier is een diapresentatie van alle geaggregeerde functies.
Oefen SQL-oefeningen
- SQL-oefeningen, oefenen, oplossing
- SQL Gegevens ophalen uit tabellen
- SQL Booleaanse en relationele operatoren
- SQL-jokertekens en speciale operatoren
- SQL-aggregatiefuncties
- SQL-opmaakquery-uitvoer
- SQL-query’s op meerdere tabellen
- FILTEREN en SORTEREN op HR-database
- SQL-JOINS
- SQL-JOINS
- SQL-JOINS op HR-database
- SQL-SUBQUERIES
- SQL-SUBQUERIES
- SQL SU BQUERIES op HR-database
- SQL Union
- SQL-weergave
- SQL-gebruikersaccountbeheer
- Movie-database
- BASIS-zoekopdrachten op filmdatabase
- SUBVRAAGSTUKKEN op filmdatabase
- WORDT LID op filmdatabase
- Voetbaldatabase
- Inleiding
- BASISquery’s op voetbaldatabase
- SUBVRAAGSTELLINGEN op voetbaldatabase
- WORDT LID van vragen op voetbaldatabase
- Ziekenhuisdatabase
- Inleiding
- BASIS, SUBQUERIES en JOINS
- Werknemersdatabase
- BASIS-queries op de werknemersdatabase
- SUBVRAAGS op de werknemersdatabase
- Er volgt nog meer!