Поиск по сайту:
...не вы съели идею, а вас съела идея (Ф.М. Достоевский).

Количество совпадающих записей с COUNT в MySQL

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...
08.03.2021
Количество совпадающих записей с COUNT в MySQL

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

  • COUNT(*)
  • COUNT(expression)
  • COUNT(DISTINCT expression)

 

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

 

У нас есть таблица «social» в нашей схеме «data». Проверим его запись с помощью следующего запроса.

>> SELECT * FROM data.social;

 

COUNT(*) в MySQL

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

>> SELECT COUNT(*) FROM data.social;

 

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

>> SELECT COUNT(*) FROM data.social WHERE User = ‘AndreyEx’;

 

Чтобы получить общую сумму строк, в которых веб-сайт пользователя – «Instagram», попробуйте запрос, указанный ниже.

>> SELECT COUNT(*) FROM data.social WHERE Website = ‘Instagram’;

 

Читать  Масштабирование баз данных WordPress | Удаленные серверы, Sharding и репликация с Ludicrous DB и AWS

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

>> SELECT COUNT(*) FROM data.social WHERE Age > 18;

 

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

>> SELECT User, Website FROM data.social WHERE User like ‘M%’;

 

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

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

>> SELECT COUNT(Website) FROM data.social WHERE Age = 25;

 

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

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

>> SELECT COUNT(DISTINCT Age) FROM data.social;

 

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

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

 >> SELECT COUNT(IF(Age < 20,1,NULL)) ‘Teenage’, COUNT(IF(Age BETWEEN 20 AND  30,1,NULL)) ‘Young’, COUNT(IF(Age > 30,1,NULL)) ‘Mature’ FROM data.social;

 

Читать  Как проверить версию PostgreSQL

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

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

>> SELECT User, COUNT(*) FROM data.social  GROUP BY User;

 

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

>> SELECT User, Age, Website, COUNT(*) FROM data.social  GROUP BY Website;

 

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

>> SELECT User, Website, Age, COUNT(*) FROM data.social  WHERE Website = ‘Instagram’ Or Website = ‘Snapchat’ GROUP BY Website, Age;

 

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

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

>>  SELECT User, Website, Age, COUNT(*) FROM data.social  GROUP BY Age ORDER BY COUNT(*) DESC;

 

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

>> SELECT User, Age, COUNT(*) FROM data.social  GROUP BY Age HAVING COUNT(*) > 2 ORDER BY COUNT(*) ASC;

 

Читать  Что такое схема в MySQL

Вывод

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Рекомендуемое
… Будущее за Rust, Wasm, Fission… Сегодня мы живем в…

Спасибо!

Теперь редакторы в курсе.