SQLite
 sql >> база данни >  >> RDS >> SQLite

Как работи SQLite Count().

SQLite count() функцията може да се използва за връщане на броя на редовете в резултатен набор.

Може да се използва и за връщане на колко пъти дадена колона не е NULL в резултатния набор.

Може да се използва по два начина. Ако подадете звездичката (* ) заместващ знак, той ще върне общия брой редове в групата. Ако предоставите името на колона, тя ще върне колко пъти тази колона не е NULL.

Синтаксис

Синтаксисът е така:

count(X)
count(*)

Така че в този случай X може да бъде името на колона и звездичката (* ) се използва заместващ знак за определяне на общия брой редове в групата.

Пример:count(*)

Ето основен пример за демонстриране на синтаксиса на звездичка (*) за връщане на броя на редовете в таблица.

SELECT count(*) FROM Customer;

Резултат:

59

Изпълних тази заявка в примерната база данни на Chinook и така се оказа, че има 59 реда в Клиент таблица.

Пример:брой(X)

В този пример предавам името на конкретна колона на таблицата.

SELECT count(Fax) FROM Customer;

Резултат:

12

В този случай Факсът колоната има 12 стойности, различни от NULL.

С други думи, 47 реда съдържат стойност NULL в Факса колона.

Използване на клауза WHERE

Резултатът от count() се изчислява след всяко WHERE клаузи.

SELECT count(Fax) 
FROM Customer 
WHERE CustomerId <= 5;

Резултат:

2

В този случай в Факса имаше само две стойности, различни от NULL колона в резултатния набор.

Ето как изглеждат резултатите с върнати колони (и без използване на count() функция).

SELECT CustomerId, Fax 
FROM Customer 
WHERE CustomerId <= 5;

Резултат:

CustomerId  Fax               
----------  ------------------
1           +55 (12) 3923-5566
2                             
3                             
4                             
5           +420 2 4172 5555  

Така че можем да видим, че само редове 1 и 5 имат стойности, различни от NULL в Факса колона.

Използване на клауза LIMIT

Резултатът не се изчислява след LIMIT клауза.

SELECT count(Fax) 
FROM Customer 
LIMIT 5;

Резултат:

12

Но вместо това можете да направите нещо подобно:

SELECT count(Fax) 
FROM (SELECT Fax FROM Customer 
LIMIT 5);

Резултат:

2

Групирани резултати

Един удобен случай за използване на count() е да го използвате във връзка с GROUP BY клауза, така че да се връщат множество редове – всеки от които представлява група – с броя на редовете в тази група.

Ето един пример.

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;

Резултат:

Name             count(al.Title)
---------------  ---------------
David Coverdale  1              
Deep Purple      11             
Def Leppard      1              
Dennis Chambers  1              
Djavan           2              
Dread Zeppelin   1              

Ключовата дума DISTINCT

Можете да добавите DISTINCT ключова дума, за да брои само различни стойности. С други думи, можете да премахнете дублиращи се стойности в изчислението.

За примери за това вижте Как да премахнете дубликати от SQLite Count() Results.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи SQLite Min().

  2. SQLite JSON_REPLACE()

  3. Съюз на SQLite

  4. SQLite - Има ли разлика между ограничение на таблица UNIQUE и ограничение на колона UNIQUE?

  5. Как Unicode() работи в SQLite