MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

COUNT() Funkcja w MariaDB

W MariaDB funkcja COUNT() funkcja agregująca zwraca liczbę niezerowych wartości wyrażenia w wierszach pobranych przez SELECT oświadczenie.

Przykładowe dane

Załóżmy, że mamy następującą tabelę:

SELECT * 
FROM Pets;

Wynik:

+-------+-----------+---------+---------+------------+
| PetId | PetTypeId | OwnerId | PetName | DOB        |
+-------+-----------+---------+---------+------------+
|     1 |         2 |       3 | Fluffy  | 2020-11-20 |
|     2 |         3 |       3 | Fetch   | 2019-08-16 |
|     3 |         2 |       2 | Scratch | 2018-10-01 |
|     4 |         3 |       3 | Wag     | 2020-03-15 |
|     5 |         1 |       1 | Tweet   | 2020-11-28 |
|     6 |         3 |       4 | Fluffy  | 2020-09-17 |
|     7 |         3 |       2 | Bark    | NULL       |
|     8 |         2 |       4 | Meow    | NULL       |
+-------+-----------+---------+---------+------------+

W poniższych przykładach zostanie użyta funkcja COUNT() funkcja podczas odpytywania tej tabeli.

Przykład

Oto jak policzyć wiersze w powyższej tabeli:

SELECT COUNT(*)
FROM Pets;

Wynik:

8

To mówi nam, że w tabeli jest 8 wierszy. Wiemy to, ponieważ użyliśmy symbolu wieloznacznego gwiazdki (* ), aby określić wszystkie wiersze i wszystkie kolumny.

Policz konkretną kolumnę

Możesz także określić kolumnę do zliczenia. COUNT() funkcja liczy tylko wartości inne niż NULL wyniki, więc jeśli określisz kolumnę zawierającą NULL wartości, te wartości nie będą liczone.

Oto przykład, aby pokazać, o co mi chodzi.

SELECT COUNT(DOB)
FROM Pets;

Wynik:

6

W tym przypadku Pets tabela zawiera dwa NULL wartości w DOB kolumna (dwa zwierzęta nie podały daty urodzenia), więc COUNT(DOB) zwraca 6, zamiast 8, gdy użyliśmy COUNT(*) .

Powód COUNT(*) w poprzednim przykładzie zwrócono wszystkie wiersze, ponieważ te dwa wiersze zrobiły mieć dane w innych kolumnach.

Przefiltrowane wyniki

COUNT() funkcja zlicza wiersze zwrócone przez zapytanie. Więc jeśli filtrujesz wyniki, wynik COUNT() odzwierciedli to.

SELECT COUNT(*)
FROM Pets
WHERE PetName = 'Fluffy';

Wynik:

2

W tym przypadku są dwa zwierzaki o imieniu Fluffy. Dlatego zapytanie zwróciłoby dwa wiersze, a wynik COUNT() to 2 .

Policz odrębne kolumny

Mamy możliwość dodania DISTINCT słowo kluczowe, aby określić, że zwracane są tylko różne wartości (aby wykluczyć duplikaty):

SELECT 
    COUNT(PetName) AS "All",
    COUNT(DISTINCT PetName) AS "Distinct"
FROM Pets;

Wynik:

+-----+----------+
| All | Distinct |
+-----+----------+
|   8 |        7 |
+-----+----------+

W tym przypadku, mimo że istnieje osiem PetName wartości, tylko siedem z nich jest odrębnych (dwa są duplikatami – mamy dwa zwierzaki zwane Fluffy).

HAVING Klauzula

Możesz dołączyć COUNT() w wielu częściach zapytania. Nie ogranicza się to tylko do SELECT lista.

Oto przykład, w którym użyto COUNT() zarówno w HAVING klauzula i SELECT lista:

SELECT 
    PetTypeId, 
    COUNT(PetTypeId) AS Count
FROM Pets
GROUP BY PetTypeId
HAVING COUNT(PetTypeId) > 2
ORDER BY Count DESC;

Wynik:

+-------------+---------+
| PetTypeId   | Count   |
|-------------+---------|
| 3           | 4       |
| 2           | 3       |
+-------------+---------+

Zobacz SQL COUNT() dla początkujących, aby uzyskać bardziej szczegółowe wyjaśnienie tego przykładu, a także przykład użycia COUNT() w funkcji okna.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dostarczanie szybszych innowacji do społeczności MariaDB

  2. Zapowiedź ClusterControl 1.7.4:Replikacja między klastrami — ostateczne odzyskiwanie po awarii

  3. Jak ADDDATE() działa w MariaDB

  4. ClusterControl 1.5 — automatyczna weryfikacja kopii zapasowej, budowanie urządzenia podrzędnego z kopii zapasowej i integracja z chmurą

  5. 2 sposoby zwracania wierszy zawierających tylko znaki niealfanumeryczne w MariaDB