sql >> Databáze >  >> RDS >> SQLite

Jak funguje SQLite Count()

SQLite count() funkci lze použít k vrácení počtu řádků v sadě výsledků.

Může být také použit k vrácení počtu případů, kdy daný sloupec není NULL v sadě výsledků.

Dá se použít dvěma způsoby. Pokud zadáte hvězdičku (* ) zástupný znak, vrátí celkový počet řádků ve skupině. Pokud zadáte název sloupce, vrátí se, kolikrát tento sloupec není NULL.

Syntaxe

Syntaxe vypadá takto:

count(X)
count(*)

Takže v tomto případě X může být název sloupce a hvězdička (* ) zástupný znak se používá k určení celkového počtu řádků ve skupině.

Příklad:count(*)

Zde je základní příklad, který demonstruje syntaxi hvězdičky (*), která vrátí počet řádků v tabulce.

SELECT count(*) FROM Customer;

Výsledek:

59

Spustil jsem tento dotaz na vzorové databázi Chinook, a tak se ukázalo, že v Zákazník je 59 řádků tabulka.

Příklad:count(X)

V tomto příkladu předám název konkrétního sloupce tabulky.

SELECT count(Fax) FROM Customer;

Výsledek:

12

V tomto případě Fax sloupec má 12 hodnot jiných než NULL.

Jinými slovy, 47 řádků obsahuje v Faxu hodnotu NULL sloupec.

Použití klauzule WHERE

Výsledek count() se vypočítá po libovolném WHERE klauzule.

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

Výsledek:

2

V tomto případě byly v Faxu pouze dvě hodnoty jiné než NULL sloupec v sadě výsledků.

Takto vypadají výsledky s vrácenými sloupci (a bez použití count() funkce).

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

Výsledek:

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

Můžeme tedy vidět, že pouze řádky 1 a 5 mají v Faxu hodnoty jiné než NULL sloupec.

Použití klauzule LIMIT

Výsledek se nepočítá po žádném LIMIT doložka.

SELECT count(Fax) 
FROM Customer 
LIMIT 5;

Výsledek:

12

Místo toho ale můžete udělat něco takového:

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

Výsledek:

2

Skupinové výsledky

Jeden praktický případ použití pro count() je použít jej ve spojení s GROUP BY klauzule, takže se vrátí více řádků – každý z nich představuje skupinu – s počtem řádků v této skupině.

Zde je příklad.

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;

Výsledek:

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

Klíčové slovo DISTINCT

Můžete přidat DISTINCT klíčové slovo pro počítání pouze odlišných hodnot. Jinými slovy, ve výpočtu můžete odstranit duplicitní hodnoty.

Příklady toho viz Jak odstranit duplikáty z výsledků SQLite Count().


  1. jak zřetězit více než dva sloupce ve vývojáři plsql?

  2. Zjistěte typ dat vrácených sloupců v sadě výsledků na serveru SQL Server

  3. Jak vložit řetězec, který obsahuje &

  4. Jak opravit nesprávnou hodnotu řetězce v MySQL