Sidste opdatering 26. februar 2020 08:07:42 (UTC / GMT +8 timer)
COUNT () -funktion
SQL COUNT () -funktionen returnerer antallet af rækker i en tabel, der opfylder kriterierne specificeret i WHERE-klausulen. Det indstiller antallet af rækker eller ikke NULL-kolonneværdier.
COUNT () returnerer 0, hvis der ikke var nogen matchende rækker.
Syntaks:
COUNT(*)COUNT( expression )
Ovenstående syntaks er den generelle SQL 2003 ANSI-standardsyntaks. Dette hjælper med at forstå, hvordan SQL COUNT () -funktionen bruges. Men forskellige databaseleverandører kan have forskellige måder at anvende COUNT () -funktion på.
Herunder kan du se, at MySQL, PostgreSQL og Microsoft SQL Server følger den samme syntaks som angivet ovenfor. Men DB2 og Oracle adskiller sig lidt.
Alt i alt kan du bruge * eller ALL eller DISTINCT eller et eller andet udtryk sammen med COUNT til at TÆLLE antallet af rækker w.r.t. en eller anden betingelse eller alle rækkerne afhængigt af de argumenter, du bruger sammen med funktionen COUNT ().
DBMS Support: COUNT () -funktion
DBMS | Kommando |
MySQL | Understøttet |
PostgreSQL | Understøttet |
SQL Server | Understøttet |
Oracle | Understøttet |
DB2 og Oracle Syntax:
COUNT ({*| expression}) OVER (window_clause)
Parametre:
Navn | Beskrivelse |
---|---|
ALLE | Gælder for alle værdier. ALL returnerer antallet af ikke-NULL-værdier. |
DISTINCT | Ignorerede duplikatværdier og COUNT returnerer antallet af unikke værdier, der ikke er nul. |
-udtryk | Ekspression, der består af en enkelt konstant, variabel, skalær funktion eller kolonnenavn og kan også være de stykker i en SQL-forespørgsel, der sammenligner værdier med andre værdier. Udtryk af enhver type undtagen tekst eller billede. Samlede funktioner og underforespørgsler er ikke tilladt. |
* | TÆLLER alle rækkerne i måltabellen, uanset om de inkluderer NULL’er. |
Syntaksdiagram – COUNT () -funktion
På de efterfølgende sider har vi diskuteret, hvordan man anvender COUNT () med forskellige SQL-klausuler. Til disse applikationer har vi brugt Oracle 10g Express Edition.
En vigtig ting ved COUNT () -funktionen:
Når * bruges til COUNT (), alle poster (rækker) tælles, hvis noget indhold NULL men COUNT (kolonnenavn) ikke Tæller en post, hvis dens felt er NULL. Se følgende eksempler:
SQL COUNT rækker i en tabel
I det følgende eksempel bruges et stjerne-tegn (*) efterfulgt af SQL COUNT (), der angiver alle rækkerne i tabellen, selvom der er nogen NULL-værdi.
Eksempeltabel: ordrer
At få antal rækker i tabellen “ordrer” , kan følgende SQL-sætning bruges:
SQL-kode:
Output:
COUNT(*)--------- 34
Billedpræsentation:
Vælg COUNT (*) fra flere tabeller
Følgende forespørgsel COUNT antallet af rækker fra to forskellige tabeller (her bruger vi medarbejdere og afdelinger) ved hjælp af COUNT (*) kommandoen.
SQL-kode:
Output:
TOTAL_EMPLOYEES NO_OF_DEPARTMENTS--------------- ----------------- 107 27
SQL COUNT () med kolonnenavn
I dette eksempel udelukker SQL COUNT () -funktionen NULL-værdier for en bestemt kolonne, hvis kolonnen er angivet som et argument i parentes af COUNT func tion.
Eksempeltabel: listofitem
For at få antallet af rækker i tabellen “listofitem” med følgende betingelse –
1. COUNT antal rækker til kolonnen “coname”
kan følgende SQL-sætning bruges:
SQL-kode:
Output:
COUNT(CONAME)------------- 2
Forklar:
Ovenstående udsagn TÆLLER de rækker for kolonnen “coname”, som ikke er NULL .
SQL COUNT rækker med brugerdefineret kolonneoverskrift
For at få antal rækker i “ordrer” -tabellen med følgende betingelse –
1. resultatet skal vises med overskriften “Antal rækker”,
følgende SQL-sætning kan bruges:
SQL-kode:
Output:
Number of Rows-------------- 36
SQL COUNT () med hvor klausul
WHERE-klausulen kan bruges sammen med SQL COUNT () -funktion til at vælge bestemte poster fra en tabel mod en given betingelse.
Eksempel:
Eksempeltabel: ordrer
For at få antal rækker i tabellen “ordrer” med følgende betingelse –
1.ord_beløb mod ordren er mere end 1500,
følgende SQL-sætning kan bruges:
Output:
Number of Rows-------------- 22
Anvendelse af COUNT () -funktionen
På de efterfølgende sider har vi diskuteret, hvordan man anvender COUNT () med forskellige SQL-klausuler. Til disse applikationer har vi brugt Oracle 10g Express Edition.
COUNT with DISTINCT-siden diskuterer, hvordan man anvender COUNT-funktionen med DISTINCT, og diskuterer også, hvordan man anvender COUNT-funktionen med ALL-klausul. I modsætning til at bruge *, når ALLE bruges, vælges ikke NULL-værdier.
COUNT HAVING-siden diskuterer, hvordan man anvender COUNT-funktion med HAVING-klausul og HAVING og GROUP BY.
COUNT with GROUP BY-side diskuterer, hvordan man anvender COUNT-funktion med GROUP BY i stigende rækkefølge og i faldende rækkefølge.
Bemærk: Output af den nævnte SQL-sætning vist her tages ved hjælp af Oracle Database 10g Express Edition
Her er en diaspræsentation af alle samlede funktioner.
Øv SQL-øvelser
- SQL-øvelser, praksis, løsning
- SQL Hent data fra tabeller
- SQL-boolske og relationsoperatorer
- SQL-jokertegn og specielle operatorer
- SQL-aggregatfunktioner
- SQL-formatering af forespørgselsoutput
- SQL-quering på flere tabeller
- FILTERING og SORTERING på HR-database
- SQL JOINS
- SQL JOINS
- SQL JOINS on HR-database
- SQL SUBQUERIES
- SQL SUBQUERIES
- SQL SU BQUERIES på HR-database
- SQL Union
- SQL View
- SQL-brugerkontostyring
- Filmdatabase
- GRUNDLÆGGENDE forespørgsler om filmdatabase
- UNDERFØRINGER om filmdatabase
- JOINS om filmdatabase
- Fodbolddatabase
- Introduktion
- GRUNDLÆGGENDE forespørgsler om fodboldatabase
- UNDERFØRINGER om fodbolddatabase
- BLIVER med forespørgsler om fodbolddatabase
- Hospitaldatabase
- Introduktion
- GRUNDLÆGGENDE, UNDERFORSKNINGER og JOINS
- Medarbejderdatabase
- GRUNDLÆGGENDE forespørgsler om medarbejderdatabase
- UNDERFØRINGER om medarbejderdatabase
- Mere at komme!