MySQL Policz pasujące rekordy za pomocą COUNT

Mysql Count Matching Records With Count



Nadmiarowość danych występuje z wielu powodów. Kilka skomplikowanych obowiązków, z którymi należy się uporać podczas pracy z systemami baz danych, polega na próbie wykrycia zduplikowanych wartości. W tym celu użyjemy metody agregującej COUNT(). Metoda COUNT() zwraca sumę wierszy znajdujących się w określonej tabeli. Funkcja COUNT() umożliwia zsumowanie wszystkich wierszy lub tylko wierszy spełniających zdefiniowany warunek. W tym przewodniku dowiesz się, jak zidentyfikować zduplikowane wartości dla jednej lub więcej kolumn MySQL za pomocą funkcji COUNT(). Metoda COUNT() ma następujące trzy typy:

  • LICZYĆ(*)
  • LICZBA(wyrażenie)
  • LICZBA(wyrażenie DISTINCT)

Określ, że masz zainstalowany MySQL w swoim systemie. Otwórz powłokę klienta wiersza poleceń MySQL i wprowadź hasło, aby kontynuować. Przyjrzymy się kilku przykładom zliczania pasujących wartości za pomocą metody COUNT().









W naszym schemacie „data” mamy tabelę „społeczne”. Sprawdźmy jego rekord za pomocą następującego zapytania.



>> WYBIERZ * Z dane .Społeczny;





LICZBA MYSQL(*)

Metoda COUNT(*) służy do zliczania liczby wierszy znajdujących się w tabeli lub zliczania liczby wierszy zgodnie z podanym warunkiem. Aby sprawdzić łączną liczbę wierszy w tabeli, „społecznościowe” wypróbuj poniższe zapytanie. Zgodnie z wynikiem mamy w sumie 15 wierszy w tabeli.

>> WYBIERZ LICZYĆ (*) Z dane .Społeczny;



Rzuć okiem na metodę COUNT(*) podczas definiowania niektórych warunków. Musimy pobrać liczbę wierszy, w których nazwa użytkownika jest taka sama jak „Mustafa”. Jak widać, mamy tylko 4 rekordy dla tej konkretnej nazwy.

>> WYBIERZ LICZYĆ (*) Z dane .Społeczny GDZIE Użytkownik =„Mustafa”;

Aby pobrać łączną sumę wierszy, w których witryna użytkownika to „Instagram”, wypróbuj poniższe zapytanie. Tabela „społecznościowe” ma tylko 4 rekordy dla strony „Instagram”.

>> WYBIERZ LICZYĆ (*) Z dane .Społeczny GDZIE Strona internetowa=„Instagram”;

Aby pobrać całkowitą liczbę wierszy, w których „Wiek” jest większy niż 18, należy:

>> WYBIERZ LICZYĆ (*) Z dane .Społeczny GDZIE Wiek> 18;

Pobierzmy dane kolumn „Użytkownik” i „Witryna” z tabeli, gdzie nazwa użytkownika zaczyna się od litery „M”. Wypróbuj poniższą instrukcję na powłoce.

>> WYBIERZ Użytkownik ,Strona internetowa Z dane .Społeczny GDZIE Użytkownik lubić 'M%';

LICZBA MySQL(wyrażenie)

W MySQL metoda COUNT(expression) jest używana tylko wtedy, gdy chcesz zliczyć wartości inne niż Null w kolumnie „expression”. „Wyrażenie” byłoby nazwą dowolnej kolumny. Weźmy prosty przykład. Liczyliśmy tylko niepuste wartości kolumny „Witryna”, która jest powiązana z kolumną „Wiek”, która ma wartość równą „25”. Widzieć! Mamy tylko 4 niepuste rekordy dla użytkowników w wieku „25”, którzy korzystają ze stron internetowych.

>> WYBIERZ LICZYĆ (Strona internetowa) Z dane .Społeczny GDZIE Wiek= 25;

LICZBA MySQL (wyrażenie DISTNCT)

W MySQL metoda COUNT(DISTINCT expression) służy do sumowania wartości innych niż Null i odrębnych wartości kolumny „expression”. Aby policzyć wyraźną liczbę wartości innych niż null w kolumnie „Wiek”, użyliśmy poniższego zapytania. Znajdziesz 6 niepustych i odrębnych rekordów kolumny „Wiek” z tabeli „społeczne”. Oznacza to, że mamy łącznie 6 osób w różnym wieku.

>> WYBIERZ LICZYĆ ( ODRĘBNY Wiek) Z dane .Społeczny;

LICZBA MySQL(JEŻELI(wyrażenie))

Dla większego nacisku należy połączyć COUNT() z funkcjami kontroli przepływu. Na początek, dla części wyrażenia używanego w metodzie COUNT() możesz użyć funkcji JEŻELI(). Może to być bardzo przydatne, aby zapewnić szybki podział informacji w bazie danych. Będziemy liczyć liczbę wierszy z różnymi warunkami wiekowymi i dzielić je na trzy różne kolumny, które można określić jako kategorie. Po pierwsze, LICZBA (JEŻELI) zlicza wiersze mające mniej niż 20 lat i zapisze tę liczbę w nowej kolumnie o nazwie „Nastoletni”. Drugie LICZENIE (JEŻELI) zlicza wiersze w wieku od 20 do 30 lat, jednocześnie zapisując je w kolumnie „Młodzi”. Po trzecie, ostatni zlicza wiersze mające wiek powyżej 30 lat i zapisane w kolumnie „Dojrzały”. W naszym rekordzie mamy 5 nastolatków, 9 młodych i tylko 1 osobę dojrzałą.

>> WYBIERZ LICZYĆ ( JEŚLI (Wiek< 20,1, ZERO ))„Nastoletni”, LICZYĆ ( JEŚLI (Wiek POMIĘDZY 20 ORAZ 30,1, ZERO ))'Młody', LICZYĆ ( JEŚLI (Wiek> 30,1, ZERO ))'Dojrzały' Z dane .Społeczny;

MySQL COUNT(*) z klauzulą ​​GROUP BY

Instrukcja GROUP BY jest instrukcją SQL używaną dla grup wierszy o tych samych wartościach. Zwraca całkowitą liczbę wartości znajdujących się w każdej grupie. Na przykład, jeśli chcesz sprawdzić numer każdego użytkownika osobno, musisz zdefiniować kolumnę „Użytkownik” z klauzulą ​​GROUP BY podczas zliczania rekordów dla każdego użytkownika z COUNT(*).

>> WYBIERZ Użytkownik , LICZYĆ (*) Z dane .Społeczny GRUPUJ WEDŁUG Użytkownik ;

Podczas liczenia wierszy wraz z klauzulą ​​GROUP BY można wybrać więcej niż dwie kolumny w następujący sposób.

>> WYBIERZ Użytkownik ,Wiek,Strona internetowa, LICZYĆ (*) Z dane .Społeczny GRUPUJ WEDŁUG Strona internetowa;

Jeśli chcemy policzyć wiersze, używając klauzuli WHERE zawierającej pewne warunki wraz z GROUP BY i COUNT(*), możesz to zrobić. Poniższe zapytanie pobierze i zliczy rekordy kolumn: „Użytkownik”, „Witryna” i „Wiek”, gdzie wartością witryny jest tylko „Instagram” i „Snapchat”. Jak widać, mamy tylko 1 rekord dla obu witryn dla różnych użytkowników.

>> WYBIERZ Użytkownik ,Strona internetowa,Wiek, LICZYĆ (*) Z dane .Społeczny GDZIE Strona internetowa=„Instagram” Lub Strona internetowa='Snapchat' GRUPUJ WEDŁUG Strona internetowa,Wiek;

MySQL COUNT(*) z klauzulą ​​GROUP BY i ORDER BY

Wypróbujmy klauzule GROUP BY i ORDER BY łącznie z metodą COUNT(). Pobierzmy i policzmy wiersze tabeli „społeczne”, porządkując dane w kolejności malejącej za pomocą tego zapytania:

>> WYBIERZ Użytkownik ,Strona internetowa,Wiek, LICZYĆ (*) Z dane .Społeczny GRUPUJ WEDŁUG Wiek ZAMÓW PRZEZ LICZYĆ (*) DESC ;

Poniższe zapytanie najpierw zliczy wiersze, a następnie wyświetli jedyne rekordy, których LICZBA jest większa niż 2 w kolejności rosnącej.

>> WYBIERZ Użytkownik ,Wiek, LICZYĆ (*) Z dane .Społeczny GRUPUJ WEDŁUG Wiek MAJĄCY LICZYĆ (*) > 2 ZAMÓW PRZEZ LICZYĆ (*) ASC ;

Wniosek

Przeszliśmy przez wszystkie możliwe metody liczenia pasujących lub zduplikowanych rekordów przy użyciu metody COUNT() z różnymi innymi klauzulami.