sql >> Databasteknik >  >> RDS >> SQLite

SQLite COUNT

Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite COUNT funktion för att få antalet objekt i en grupp.

Introduktion till SQLite COUNT() funktion

Funktionen COUNT() är en aggregatfunktion som returnerar antalet objekt i en grupp.

Du kan till exempel använda COUNT() funktion för att få antalet spår från tracks tabellen, antalet artister från artists bord och så vidare.

Följande illustrerar den grundläggande syntaxen för COUNT funktion:

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

Argument

COUNT funktion beter sig enligt de argument som du skickar in i den och alternativet ALL eller DISTINCT som du anger.

Följande beskriver betydelsen av ALL och DISTINCT alternativ:

  • ALL :när du anger alla, COUNT() funktion räknar alla icke-nullvärden inkluderar dubbletter. COUNT() funktionen använder ALL alternativet som standard om du hoppar över det.
  • DISTINCT :om du uttryckligen använder DISTINCT alternativet, COUNT funktion räknar endast unika och icke-nullvärden.

Uttrycket kan vara en kolumn eller ett uttryck som involverar kolumner till vilka funktionen COUNT() tillämpas.

SQLite tillhandahåller en annan syntax för COUNT() funktion:

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

COUNT(*) funktion returnerar antalet rader i en tabell, inklusive raderna inklusive NULL och dubbletter.

SQLite COUNT() funktionsillustration

Skapa först en tabell som heter t1 som har en kolumn:

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

För det andra, infoga fem rader i t1 tabell:

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

För det tredje, fråga efter data från t1 tabell:

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

För det fjärde, använd COUNT(*) funktion för att returnera antalet rader i t1 tabell:

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

Som du tydligt kan se från resultatet innehåller resultatuppsättningen NULL och dubbletter av rader.

För det femte, använd COUNT(expression) för att få antalet icke-nullvärden i kolumnen c :

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

I det här exemplet är COUNT(c) returnerar antalet icke-nullvärden. Den räknar dubblettraderna som separata rader.

För det sjätte, använd COUNT(DISTINCT expression) för att få antalet unika och icke-nullvärden i kolumn c :

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

SQLite COUNT(*) exempel

Vi tar tabellen tracks i exempeldatabasen för att demonstrera funktionen hos COUNT(*) funktion.

1) SQLite COUNT(*) exempel

För att få antalet rader från tracks tabell använder du COUNT(*) fungerar enligt följande:

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

Prova det

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

2) SQLite COUNT(*) med WHERE klausulexempel

Följande sats använder COUNT(*) funktion med en WHERE klausul för att hitta antalet spår vars album-id är 10:

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

Prova det

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

3) SQLite COUNT(*) med GROUP BY klausulexempel

För att få alla album och antalet spår i varje album, kombinerar du COUNT(*) funktion med GROUP BY klausul:

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

Prova det

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

I det här exemplet:

  • Först, GROUP BY klausul gruppera spår efter album-id.
  • Sedan, COUNT(*) funktionen returnerar antalet spår för varje album eller grupp av spår.

4) SQLite COUNT(*) med HAVING klausulexempel

Följande använder COUNT(*) i HAVING klausul för att hitta album som har fler än 25 spår:

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

Prova det

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

5) SQLite COUNT(*) med INNER JOIN klausulexempel

För att göra utdata från ovanstående fråga mer användbar kan du inkludera albumets namnkolumn. För att göra detta lägger du till INNER JOIN och ORDER BY satser till frågan som följande fråga:

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)

Prova det

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

SQLite COUNT(DISTINCT expression) exempel

Låt oss ta en titt på employees tabell från exempeldatabasen.

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

Prova 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

För att få antalet positionstitlar skickar du title kolumnen till COUNT() fungerar enligt följande:

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

Prova det

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

Men för att få antalet unika titlar måste du lägga till DISTINCT alternativet till COUNT() fungerar som visas i följande uttalande:

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

Prova det

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

I den här handledningen har vi visat dig hur du använder SQLite COUNT() funktion för att räkna antalet objekt i en grupp.


  1. Hur konverterar man SQL Query-resultat till PANDAS Data Structure?

  2. Aritmetiskt spillfel vid konvertering av uttryck till datatyp datetime. (medan datum och tid visas..)

  3. Hjälp till att förbättra SQL Server-statistiken!

  4. Hur visar man UTF-8-tecken i phpMyAdmin?