Podsumowanie :w tym samouczku dowiesz się, jak korzystać z SQLite COUNT
funkcja, aby uzyskać liczbę elementów w grupie.
Wprowadzenie do SQLite COUNT()
funkcja
Funkcja COUNT()
to funkcja agregująca, która zwraca liczbę elementów w grupie.
Na przykład możesz użyć COUNT()
funkcja, aby uzyskać liczbę utworów z tracks
tabela, liczba artystów z artists
stół i tak dalej.
Poniżej przedstawiono podstawową składnię COUNT
funkcja:
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
Argumenty
COUNT
funkcja zachowuje się zgodnie z przekazanymi do niej argumentami i opcją ALL
lub DISTINCT
które określisz.
Poniżej opisano znaczenie ALL
i DISTINCT
opcje:
ALL
:po określeniu wszystkich,COUNT()
funkcja zlicza wszystkie wartości inne niż null obejmują duplikaty.COUNT()
funkcja używaALL
opcja domyślna, jeśli ją pominiesz.DISTINCT
:jeśli jawnie używaszDISTINCT
opcjaCOUNT
funkcja liczy tylko wartości unikalne i niepuste.
Wyrażenie może być kolumną lub wyrażeniem obejmującym kolumny, do których funkcja COUNT()
jest stosowany.
SQLite zapewnia inną składnię COUNT()
funkcja:
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
COUNT(*)
funkcja zwraca liczbę wierszy w tabeli, w tym wiersze zawierające NULL i duplikaty.
SQLite COUNT()
ilustracja funkcji
Najpierw utwórz tabelę o nazwie t1
który ma jedną kolumnę:
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
Po drugie, wstaw pięć wierszy do t1
tabela:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
Po trzecie, zapytaj o dane z t1
tabela:
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)
Po czwarte, użyj COUNT(*)
funkcja zwracająca liczbę wierszy w t1
tabela:
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)
Jak widać wyraźnie z danych wyjściowych, zestaw wyników zawiera NULL i zduplikowane wiersze.
Po piąte, użyj COUNT(expression)
aby uzyskać liczbę wartości innych niż null w kolumnie c
:
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
W tym przykładzie COUNT(c)
zwraca liczbę wartości innych niż null. Liczy zduplikowane wiersze jako osobne wiersze.
Po szóste, użyj COUNT(DISTINCT expression)
aby uzyskać liczbę unikalnych i niepustych wartości w kolumnie c
:
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*)
przykłady
Weźmiemy stół tracks
w przykładowej bazie danych, aby zademonstrować funkcjonalność COUNT(*)
funkcja.
1) SQLite COUNT(*)
przykład
Aby uzyskać liczbę wierszy z tracks
tabeli, użyj COUNT(*)
działają w następujący sposób:
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
count(*)
--------
3503
Code language: plaintext (plaintext)
2) SQLite COUNT(*)
z WHERE
przykład klauzuli
Poniższa instrukcja używa COUNT(*)
funkcja z WHERE
klauzula, aby znaleźć liczbę utworów, których identyfikator albumu to 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
COUNT(*)
--------
14
3) SQLite COUNT(*)
z GROUP BY
przykład klauzuli
Aby uzyskać wszystkie albumy i liczbę utworów w każdym albumie, połącz COUNT(*)
funkcja z GROUP BY
klauzula:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
W tym przykładzie:
- Po pierwsze,
GROUP BY
grupuj utwory klauzul według identyfikatora albumu. - Następnie
COUNT(*)
funkcja zwraca liczbę utworów dla każdego albumu lub grupy utworów.
4) SQLite COUNT(*)
z HAVING
przykład klauzuli
Poniższe używa COUNT(*)
w HAVING
klauzula dotycząca wyszukiwania albumów zawierających więcej niż 25 utworów:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
z INNER JOIN
przykład klauzuli
Aby dane wyjściowe powyższego zapytania były bardziej przydatne, możesz dołączyć kolumnę nazwy albumu. Aby to zrobić, dodaj INNER JOIN
i ORDER BY
klauzule do zapytania, takie jak następujące zapytanie:
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)
Wypróbuj
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
przykłady
Przyjrzyjmy się employees
tabela z przykładowej bazy danych.
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
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
Aby uzyskać liczbę tytułów pozycji, przekazujesz title
kolumnę do COUNT()
działają w następujący sposób:
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
COUNT(title)
------------
8
Jednak, aby uzyskać liczbę unikalnych tytułów, musisz dodać DISTINCT
opcję COUNT()
działają tak, jak pokazano w następującym oświadczeniu:
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
COUNT(DISTINCT title)
---------------------
5
W tym samouczku pokazaliśmy, jak korzystać z SQLite COUNT()
funkcja zliczania liczby elementów w grupie.