SQLite count()
funkcja może służyć do zwracania liczby wierszy w zestawie wyników.
Może być również użyty do zwrócenia, ile razy dana kolumna nie jest NULL w zestawie wyników.
Może być używany na dwa sposoby. Jeśli wpiszesz gwiazdkę (*
) symbol wieloznaczny, zwróci całkowitą liczbę wierszy w grupie. Jeśli podasz nazwę kolumny, zwróci ona ile razy ta kolumna nie jest NULL.
Składnia
Składnia wygląda tak:
count(X)
count(*)
W tym przypadku X
może być nazwą kolumny i gwiazdką (*
) symbol wieloznaczny służy do określenia całkowitej liczby wierszy w grupie.
Przykład:liczba(*)
Oto podstawowy przykład demonstrowania składni gwiazdki (*), która zwraca liczbę wierszy w tabeli.
SELECT count(*) FROM Customer;
Wynik:
59
Uruchomiłem to zapytanie w przykładowej bazie danych Chinook, więc okazuje się, że w Klient jest 59 wierszy tabela.
Przykład:liczba(X)
W tym przykładzie przekazuję nazwę określonej kolumny tabeli.
SELECT count(Fax) FROM Customer;
Wynik:
12
W takim przypadku Faks kolumna ma 12 wartości innych niż NULL.
Innymi słowy, 47 wierszy zawiera wartość NULL w Faksie kolumna.
Korzystanie z klauzuli WHERE
Wynik count()
jest obliczana po dowolnym WHERE
klauzule.
SELECT count(Fax)
FROM Customer
WHERE CustomerId <= 5;
Wynik:
2
W tym przypadku w Faksie były tylko dwie wartości inne niż NULL kolumna w zestawie wyników.
Oto jak wyglądają wyniki ze zwróconymi kolumnami (i bez użycia count()
funkcja).
SELECT CustomerId, Fax
FROM Customer
WHERE CustomerId <= 5;
Wynik:
CustomerId Fax ---------- ------------------ 1 +55 (12) 3923-5566 2 3 4 5 +420 2 4172 5555
Widzimy więc, że tylko wiersze 1 i 5 mają wartości inne niż NULL w Faksie kolumna.
Korzystanie z klauzuli LIMIT
Wynik nie jest obliczany po każdym LIMIT
klauzula.
SELECT count(Fax)
FROM Customer
LIMIT 5;
Wynik:
12
Ale zamiast tego możesz zrobić coś takiego:
SELECT count(Fax)
FROM (SELECT Fax FROM Customer
LIMIT 5);
Wynik:
2
Wyniki zgrupowane
Jeden przydatny przypadek użycia dla count()
jest użycie go w połączeniu z GROUP BY
klauzula, tak aby zwracanych było wiele wierszy – każdy reprezentujący grupę – z liczbą wierszy w tej grupie.
Oto przykład.
SELECT
ar.Name,
count(al.Title)
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
WHERE ar.Name LIKE 'D%'
GROUP BY ar.Name
LIMIT 10;
Wynik:
Name count(al.Title) --------------- --------------- David Coverdale 1 Deep Purple 11 Def Leppard 1 Dennis Chambers 1 Djavan 2 Dread Zeppelin 1
DISTINCT Słowo kluczowe
Możesz dodać DISTINCT
słowo kluczowe, aby liczyć tylko różne wartości. Innymi słowy, możesz usunąć zduplikowane wartości z obliczeń.
Aby zapoznać się z przykładami, zobacz Jak usunąć duplikaty z wyników SQLite Count().