MySQL брой съвпада с записи с COUNT

Mysql Count Matching Records With Count



Излишъкът от данни възниква по много причини. Няколко от сложните задължения, с които трябва да се справите, докато работите със системи за бази данни, се опитват да открият дублиращи се стойности. За тази цел ще използваме агрегатния метод COUNT (). Методът COUNT () връща сумата от редове, пребиваващи в определена таблица. Функцията COUNT () ви позволява да сумирате всички редове или само редове, съответстващи на определеното условие. В това ръководство ще научите как да идентифицирате дублиращи се стойности за една или може би повече MySQL колони, използвайки COUNT (). Методът COUNT () има следните три типа:

  • БРОЯ(*)
  • COUNT (израз)
  • COUNT (DISTINCT израз)

Определете, че имате инсталиран MySQL на вашата система. Отворете клиентската обвивка на командния ред MySQL и въведете паролата си, за да продължите. Ще разгледаме някои примери за преброяване на съвпадащите стойности, използвайки метода COUNT ().









Имаме таблица „социална“ в нашата схема „данни“. Нека проверим записа му чрез следната заявка.



>> SELECT * ОТ данни .Социални;





MySQL COUNT (*)

Методът COUNT (*) се използва за преброяване на броя редове, пребиваващи в таблицата, или преброяване на броя редове според даденото условие. За да проверите общия брой редове в таблица, „социални“ опитайте заявката по -долу. Имаме общо 15 реда в таблицата според резултата.

>> SELECT БРОЯ (*) ОТ данни .Социални;



Погледнете метода COUNT (*), докато дефинирате някои условия. Трябва да извлечем броя редове, където потребителското име е същото като „Мустафа“. Можете да видите, че имаме само 4 записа за това конкретно име.

>> SELECT БРОЯ (*) ОТ данни .Социални КЪДЕТО Потребител ='Мустафа';

За да извлечете общата сума от редове, където уебсайтът на потребителя е „Instagram“, опитайте посочената по-долу заявка. Таблицата „социални“ има само 4 записа за уебсайта „Instagram“.

>> SELECT БРОЯ (*) ОТ данни .Социални КЪДЕТО Уебсайт=„Instagram“;

За да извлечете общия брой редове, където „Възраст“ е по -голям от 18, е както следва:

>> SELECT БРОЯ (*) ОТ данни .Социални КЪДЕТО Възраст> 18;

Нека извлечем данните от колони „Потребител“ и „Уебсайт“ от таблица, където потребителското име започва с азбуката „М“. Опитайте инструкцията по -долу върху черупката.

>> SELECT Потребител ,Уебсайт ОТ данни .Социални КЪДЕТО Потребител като „М%';

MySQL COUNT (израз)

В MySQL методът COUNT (израз) се използва само когато искате да броите ненулеви стойности на колоната „израз“. „Изразът“ ще бъде името на всяка колона. Нека вземем прост пример за това. Брояхме само ненулевите стойности на колона „Уебсайт“, която е свързана с колоната „Възраст“ със стойност, равна на „25“. Вижте! Имаме само 4 записа без нула за потребителите на възраст „25“, които използват уебсайтове.

>> SELECT БРОЯ (Уебсайт) ОТ данни .Социални КЪДЕТО Възраст= 25;

MySQL COUNT (израз DISTNCT)

В MySQL методът COUNT (израз на DISTINCT) се използва за сумиране на ненулеви стойности и различни стойности на колоната „израз“. За да преброим различен брой ненулеви стойности в колоната „Възраст“, ​​използвахме заявката по-долу. Ще намерите 6 ненулеви и отделни записа на колона „Възраст“ от таблицата „социални“. Това означава, че имаме общо 6 души на различна възраст.

>> SELECT БРОЯ ( РАЗЛИЧЕН Възраст) ОТ данни .Социални;

MySQL COUNT (IF (израз))

За голям акцент трябва да обедините COUNT () с функции за контрол на потока. Като начало, за част от израза, използван в метода COUNT (), може да използвате функцията IF (). Може да бъде много полезно да направите това, за да осигурите бързо разбиване на информацията в базата данни. Ще броим броя на редовете с различни възрастови условия и ще ги разделим на три различни колони, които могат да се кажат като категории. Първо, COUNT (IF) ще брои редовете с възраст под 20 години и ще запише този брой в нова колона, наречена „Тийнейджър“. Вторият COUNT (IF) брои редовете на възраст между 20 и 30, като същевременно го запазва в колона „Млад“. Трето, последното брои редовете с възраст над 30 и се записва в колона „Зрели“. В нашия запис има 5 тийнейджъри, 9 млади и само 1 зрял човек.

>> SELECT БРОЯ ( АКО (Възраст< двайсет,1, НУЛА ))„Тийнейджър“, БРОЯ ( АКО (Възраст МЕЖДУ двайсет И 30,1, НУЛА ))„Млад“, БРОЯ ( АКО (Възраст> 30,1, НУЛА ))„Зрял“ ОТ данни .Социални;

MySQL COUNT (*) с клауза GROUP BY

Изразът GROUP BY е SQL инструкция, използваща за групови редове със същите стойности. Той връща общия брой стойности, пребиваващи във всяка група. Например, ако искате да проверите номера на всеки потребител поотделно, трябва да дефинирате колоната „Потребител“ с клаузата GROUP BY, докато преброявате записи за всеки потребител с COUNT (*).

>> SELECT Потребител , БРОЯ (*) ОТ данни .Социални ГРУПИРАЙ ПО Потребител ;

Можете да изберете повече от две колони, докато извършвате преброяването на редове заедно с клаузата GROUP BY, както следва.

>> SELECT Потребител ,Възраст,Уебсайт, БРОЯ (*) ОТ данни .Социални ГРУПИРАЙ ПО Уебсайт;

Ако искаме да броим редове, докато използваме клаузата WHERE, която има някои условия в нея заедно с GROUP BY и COUNT (*), можете също да направите това. Заявката по -долу ще извлича и преброява записите на колони: „Потребител“, „Уебсайт“ и „Възраст“, ​​където стойността на уебсайта е само „Instagram“ и „Snapchat“. Можете да видите, че имаме само 1 запис за двата уебсайта за различни потребители.

>> SELECT Потребител ,Уебсайт,Възраст, БРОЯ (*) ОТ данни .Социални КЪДЕТО Уебсайт=„Instagram“ Или Уебсайт=„Snapchat“ ГРУПИРАЙ ПО Уебсайт,Възраст;

MySQL COUNT (*) с клауза GROUP BY и ORDER BY

Нека опитаме клаузите GROUP BY и ORDER BY съвместно с метода COUNT (). Нека извлечем и преброим редовете на таблицата „социални“, докато подреждаме данните в низходящ ред, използвайки тази заявка:

>> SELECT Потребител ,Уебсайт,Възраст, БРОЯ (*) ОТ данни .Социални ГРУПИРАЙ ПО Възраст ПОДРЕДЕНИ ПО БРОЯ (*) DESC ;

Посочената по-долу заявка първо ще преброи редовете, след това ще покаже единствените записи, които имат COUNT по-голямо от 2 във възходящ ред.

>> SELECT Потребител ,Възраст, БРОЯ (*) ОТ данни .Социални ГРУПИРАЙ ПО Възраст ИМАЩИ БРОЯ (*) > 2 ПОДРЕДЕНИ ПО БРОЯ (*) ASC ;

Заключение

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