MySQL Count Matching Records с COUNT

Mysql Count Matching Records With Count



Избыточность данных возникает по множеству причин. Некоторые из сложных задач, с которыми вы должны справиться при работе с системами баз данных, - это попытка обнаружить повторяющиеся значения. Для этого мы будем использовать агрегатный метод COUNT (). Метод COUNT () возвращает сумму строк, находящихся в определенной таблице. Функция COUNT () позволяет суммировать все строки или только строки, соответствующие заданному условию. В этом руководстве вы узнаете, как определять повторяющиеся значения для одного или нескольких столбцов MySQL с помощью COUNT (). Метод COUNT () имеет три типа:

  • СЧИТАТЬ(*)
  • COUNT (выражение)
  • COUNT (DISTINCT выражение)

Убедитесь, что в вашей системе установлен MySQL. Откройте клиентскую оболочку командной строки MySQL и введите свой пароль, чтобы продолжить. Мы рассмотрим несколько примеров подсчета совпадающих значений с помощью метода COUNT ().









В нашей схеме data есть таблица 'social'. Давайте проверим его запись с помощью следующего запроса.



>> ВЫБРАТЬ * ИЗ данные .Социальное;





MySQL COUNT (*)

Метод COUNT (*) используется для подсчета количества строк, находящихся в таблице, или подсчета количества строк в соответствии с заданным условием. Чтобы проверить общее количество строк в таблице, 'социальный' попробуйте запрос ниже. По результату у нас в таблице всего 15 строк.

>> ВЫБРАТЬ СЧИТАТЬ (*) ИЗ данные .Социальное;



Взгляните на метод COUNT (*) при определении некоторых условий. Нам нужно получить количество строк, в которых имя пользователя совпадает с «Мустафа». Вы можете видеть, что у нас есть только 4 записи для этого конкретного имени.

>> ВЫБРАТЬ СЧИТАТЬ (*) ИЗ данные .Социальное КУДА Пользователь знак равно'Мустафа';

Чтобы получить общую сумму строк, в которых веб-сайт пользователя является «Instagram», попробуйте следующий запрос. В таблице «соцсети» всего 4 записи для сайта «Instagram».

>> ВЫБРАТЬ СЧИТАТЬ (*) ИЗ данные .Социальное КУДА Веб-сайтзнак равно'Instagram';

Чтобы получить общее количество строк, в которых «Возраст» больше 18, выполните следующие действия:

>> ВЫБРАТЬ СЧИТАТЬ (*) ИЗ данные .Социальное КУДА Возраст> 18;

Давайте возьмем данные столбцов «Пользователь» и «Веб-сайт» из таблицы, где имя пользователя начинается с буквы «M». Попробуйте приведенную ниже инструкцию по оболочке.

>> ВЫБРАТЬ Пользователь ,Веб-сайт ИЗ данные .Социальное КУДА Пользователь нравиться ‘M%';

MySQL COUNT (выражение)

В MySQL метод COUNT (выражение) используется только тогда, когда вы хотите подсчитать ненулевые значения столбца «выражение». «Выражение» будет именем любого столбца. Давайте рассмотрим простой пример. Мы подсчитывали только ненулевые значения столбца «Веб-сайт», который связан со столбцом «Возраст», имеющим значение, равное «25». Видеть! У нас есть только 4 непустые записи для пользователей в возрасте «25 лет», которые используют веб-сайты.

>> ВЫБРАТЬ СЧИТАТЬ (Веб-сайт) ИЗ данные .Социальное КУДА Возрастзнак равно 25;

MySQL COUNT (выражение DISTNCT)

В MySQL метод COUNT (DISTINCT expression) используется для суммирования ненулевых значений и различных значений столбца «выражение». Чтобы подсчитать определенное количество ненулевых значений в столбце «Возраст», мы использовали следующий запрос. Вы найдете 6 непустых и различных записей столбца «Возраст» из таблицы «социальный». Это означает, что у нас всего 6 человек разного возраста.

>> ВЫБРАТЬ СЧИТАТЬ ( ОТЧЕТЛИВЫЙ Возраст) ИЗ данные .Социальное;

MySQL COUNT (ЕСЛИ (выражение))

Для большего акцента вы должны объединить COUNT () с функциями управления потоком. Для начала, для части выражения, используемого в методе COUNT (), вы можете использовать функцию IF (). Это может быть очень полезно для быстрой разбивки информации в базе данных. Мы будем подсчитывать количество строк с разными возрастными условиями и разделять их на три разных столбца, которые можно назвать категориями. Во-первых, COUNT (IF) будет подсчитывать строки, возраст которых меньше 20, и сохранять это количество в новом столбце с именем «Подростковый». Второй COUNT (IF) подсчитывает строки возрастом от 20 до 30, сохраняя его в столбце «Молодые». В-третьих, последний подсчитывает строки старше 30 лет, сохраненные в столбце «Зрелые». В нашем послужном списке 5 подростков, 9 молодых и только 1 зрелый человек.

>> ВЫБРАТЬ СЧИТАТЬ ( ЕСЛИ (Возраст< двадцать,1, НУЛЕВОЙ ))«Подростковый», СЧИТАТЬ ( ЕСЛИ (Возраст МЕЖДУ двадцать А ТАКЖЕ 30,1, НУЛЕВОЙ ))'Молодой', СЧИТАТЬ ( ЕСЛИ (Возраст> 30,1, НУЛЕВОЙ ))'Зрелый' ИЗ данные .Социальное;

MySQL COUNT (*) с предложением GROUP BY

Оператор GROUP BY - это инструкция SQL, которая используется для группировки строк с одинаковыми значениями. Он возвращает общее количество значений, находящихся в каждой группе. Например, если вы хотите проверить номер каждого пользователя отдельно, вы должны определить столбец «Пользователь» с помощью предложения GROUP BY, подсчитывая записи для каждого пользователя с помощью COUNT (*).

>> ВЫБРАТЬ Пользователь , СЧИТАТЬ (*) ИЗ данные .Социальное ГРУППА ПО Пользователь ;

Вы можете выбрать более двух столбцов при выполнении подсчета строк вместе с предложением GROUP BY, как показано ниже.

>> ВЫБРАТЬ Пользователь ,Возраст,Веб-сайт, СЧИТАТЬ (*) ИЗ данные .Социальное ГРУППА ПО Веб-сайт;

Если мы хотим подсчитать строки при использовании предложения WHERE с некоторыми условиями в нем наряду с GROUP BY и COUNT (*), вы также можете это сделать. Приведенный ниже запрос будет извлекать и подсчитывать записи столбцов: «Пользователь», «Веб-сайт» и «Возраст», где значениями веб-сайта являются только «Instagram» и «Snapchat». Вы можете видеть, что у нас есть только 1 запись для обоих веб-сайтов для разных пользователей.

>> ВЫБРАТЬ Пользователь ,Веб-сайт,Возраст, СЧИТАТЬ (*) ИЗ данные .Социальное КУДА Веб-сайтзнак равно'Instagram' Или Веб-сайтзнак равно«Snapchat» ГРУППА ПО Веб-сайт,Возраст;

MySQL COUNT (*) с предложением GROUP BY и ORDER BY

Давайте попробуем предложения GROUP BY и ORDER BY совместно с методом COUNT (). Давайте возьмем и посчитаем строки таблицы «social», упорядочивая данные в порядке убывания, используя этот запрос:

>> ВЫБРАТЬ Пользователь ,Веб-сайт,Возраст, СЧИТАТЬ (*) ИЗ данные .Социальное ГРУППА ПО Возраст СОРТИРОВАТЬ ПО СЧИТАТЬ (*) DESC ;

Приведенный ниже запрос сначала подсчитает строки, а затем отобразит только записи, имеющие COUNT больше 2 в порядке возрастания.

>> ВЫБРАТЬ Пользователь ,Возраст, СЧИТАТЬ (*) ИЗ данные .Социальное ГРУППА ПО Возраст ИМЕЮЩИЕ СЧИТАТЬ (*) > 2 СОРТИРОВАТЬ ПО СЧИТАТЬ (*) ASC ;

Заключение

Мы рассмотрели все возможные методы для подсчета совпадающих или повторяющихся записей, используя метод COUNT () с различными другими предложениями.