sql >> Database teknologi >  >> RDS >> SQLite

SQLite COUNT

Oversigt :i denne vejledning lærer du, hvordan du bruger SQLite COUNT funktion for at få antallet af elementer i en gruppe.

Introduktion til SQLite COUNT() funktion

Funktionen COUNT() er en aggregeret funktion, der returnerer antallet af elementer i en gruppe.

For eksempel kan du bruge COUNT() funktion for at få antallet af spor fra tracks tabel, antallet af kunstnere fra artists tabel og så videre.

Det følgende illustrerer den grundlæggende syntaks for COUNT funktion:

COUNT([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql)

Argumenter

COUNT funktion opfører sig i henhold til de argumenter, du sender ind i den, og muligheden ALL eller DISTINCT som du angiver.

Det følgende beskriver betydningen af ​​ALL og DISTINCT muligheder:

  • ALL :når du angiver alle, vil COUNT() funktion tæller alle ikke-nul værdier inkluderer dubletter. COUNT() funktionen bruger ALL indstilling som standard, hvis du springer den over.
  • DISTINCT :hvis du eksplicit bruger DISTINCT mulighed, COUNT funktion tæller kun unikke og ikke-nullværdier.

Udtrykket kan være en kolonne eller et udtryk, der involverer kolonner, hvortil funktionen COUNT() anvendes.

SQLite giver en anden syntaks for COUNT() funktion:

COUNT(*)Code language: SQL (Structured Query Language) (sql)

COUNT(*) funktion returnerer antallet af rækker i en tabel, inklusive rækkerne inklusive NULL og dubletter.

SQLite COUNT() funktionsillustration

Først skal du oprette en tabel kaldet t1 der har én kolonne:

CREATE TABLE t1(c INTEGER);Code language: SQL (Structured Query Language) (sql)

For det andet skal du indsætte fem rækker i t1 tabel:

INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);Code language: SQL (Structured Query Language) (sql)

For det tredje, forespørg data fra t1 tabel:

SELECT * FROM t1;Code language: SQL (Structured Query Language) (sql)

For det fjerde skal du bruge COUNT(*) funktion til at returnere antallet af rækker i t1 tabel:

SELECT COUNT(*) FROM t1;Code language: SQL (Structured Query Language) (sql)

Som du tydeligt kan se fra outputtet, inkluderer resultatsættet NULL og duplikerede rækker.

For det femte skal du bruge COUNT(expression) for at få antallet af ikke-nul-værdier i kolonnen c :

SELECT COUNT(c) FROM t1;Code language: SQL (Structured Query Language) (sql)

I dette eksempel er COUNT(c) returnerer antallet af ikke-nul-værdier. Det tæller de duplikerede rækker som separate rækker.

For det sjette, brug COUNT(DISTINCT expression) for at få antallet af unikke og ikke-nul-værdier i kolonne c :

SELECT COUNT(DISTINCT c) FROM t1;Code language: SQL (Structured Query Language) (sql)

SQLite COUNT(*) eksempler

Vi tager tabellen tracks i eksempeldatabasen for at demonstrere funktionaliteten af ​​COUNT(*) funktion.

1) SQLite COUNT(*) eksempel

For at få antallet af rækker fra tracks tabel, bruger du COUNT(*) fungerer som følger:

SELECT count(*)
FROM tracks;Code language: SQL (Structured Query Language) (sql)

Prøv det

count(*)
--------
3503Code language: plaintext (plaintext)

2) SQLite COUNT(*) med WHERE klausuleksempel

Følgende sætning bruger COUNT(*) funktion med en WHERE klausul for at finde antallet af spor, hvis album-id er 10:

SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;Code language: SQL (Structured Query Language) (sql)

Prøv det

COUNT(*)
--------
14

3) SQLite COUNT(*) med GROUP BY klausuleksempel

For at få alle albummer og antallet af numre i hvert album kombinerer du COUNT(*) funktion med GROUP BY klausul:

SELECT
	albumid,
	COUNT(*)
FROM
	tracks
GROUP BY
	albumid;Code language: SQL (Structured Query Language) (sql)

Prøv det

AlbumId  COUNT(*)
-------  --------
1        10
2        1
3        3
4        8
5        15
6        13
7        12
8        14
9        8
10       14
...

I dette eksempel:

  • For det første, GROUP BY klausul grupperer numre efter album-id.
  • Derefter, COUNT(*) funktion returnerer antallet af spor for hvert album eller gruppe af spor.

4) SQLite COUNT(*) med HAVING klausuleksempel

Det følgende bruger COUNT(*) i HAVING klausul for at finde album, der har mere end 25 numre:

SELECT
   albumid,
   COUNT(*)
FROM
   tracks
GROUP BY
   albumid
HAVING COUNT(*) > 25Code language: SQL (Structured Query Language) (sql)

Prøv det

AlbumId  COUNT(*)
-------  --------
23       34
73       30
141      57
229      26

5) SQLite COUNT(*) med INNER JOIN klausuleksempel

For at gøre outputtet af ovenstående forespørgsel mere nyttigt, kan du inkludere albummets navnekolonne. For at gøre dette, tilføjer du INNER JOIN og ORDER BY klausuler til forespørgslen som følgende forespørgsel:

SELECT
	tracks.albumid, 
	title, 
	COUNT(*)
FROM
	tracks
INNER JOIN albums ON
	albums.albumid = tracks.albumid
GROUP BY
	tracks.albumid
HAVING
	COUNT(*) > 25
ORDER BY
	COUNT(*) DESC;Code language: SQL (Structured Query Language) (sql)

Prøv det

AlbumId  Title           COUNT(*)
-------  --------------  --------
141      Greatest Hits   57
23       Minha Historia  34
73       Unplugged       30
229      Lost, Season 3  26

SQLite COUNT(DISTINCT expression) eksempler

Lad os tage et kig på employees tabel fra eksempeldatabasen.

SELECT
	employeeid,
	lastname,
	firstname,
	title
FROM
	employees;Code language: SQL (Structured Query Language) (sql)

Prøv det

EmployeeId  LastName  FirstName  Title
----------  --------  ---------  -------------------
1           Adams     Andrew     General Manager
2           Edwards   Nancy      Sales Manager
3           Peacock   Jane       Sales Support Agent
4           Park      Margaret   Sales Support Agent
5           Johnson   Steve      Sales Support Agent
6           Mitchell  Michael    IT Manager
7           King      Robert     IT Staff
8           Callahan  Laura      IT Staff

For at få antallet af stillingstitler videregiver du title kolonne til COUNT() fungerer som følger:

SELECT COUNT(title)
FROM employees;Code language: SQL (Structured Query Language) (sql)

Prøv det

COUNT(title)
------------
8

For at få antallet af unikke titler skal du dog tilføje DISTINCT mulighed for COUNT() fungerer som vist i følgende sætning:

SELECT COUNT(DISTINCT title)
FROM employees;Code language: SQL (Structured Query Language) (sql)

Prøv det

COUNT(DISTINCT title)
---------------------
5

I denne vejledning har vi vist dig, hvordan du bruger SQLite COUNT() funktion til at tælle antallet af elementer i en gruppe.


  1. Brug af regex i WHERE i Postgres

  2. Importer en CSV-fil til en SQLite-tabel

  3. Hvordan klassificeres SQL-kommandoer | UBIQ

  4. SQLServer vs StateServer for ASP.NET Session State Performance