Надлишковість даних виникає з багатьох причин. Деякі складні обов'язки, з якими вам доведеться впоратися під час роботи з системами баз даних, намагаються виявити повторювані значення. Для цього ми будемо використовувати агрегований метод COUNT (). Метод COUNT () повертає суму рядків, що містяться в певній таблиці. Функція COUNT () дозволяє підсумовувати всі рядки або лише рядки, що відповідають визначеній умові. У цьому посібнику ви дізнаєтесь, як ідентифікувати повторювані значення для одного або, можливо, більше стовпців MySQL, використовуючи COUNT (). Метод COUNT () має такі три типи:
- РАХУВАТИ(*)
- COUNT (вираз)
- COUNT (вираз DISTINCT)
Впевніться, що у вас встановлено MySQL. Відкрийте оболонку клієнтського рядка MySQL та введіть свій пароль, щоб продовжити. Ми розглянемо кілька прикладів для підрахунку відповідних значень за допомогою методу COUNT ().
У нашій схемі „дані” є таблиця „соціальна”. Давайте перевіримо його запис за допомогою наступного запиту.
>> ВИБЕРІТЬ * ВІД даних.соціальна;
MySQL COUNT (*)
Метод COUNT (*) використовується для підрахунку кількості рядків, що перебувають у таблиці, або підрахунку кількості рядків відповідно до заданої умови. Щоб перевірити загальну кількість рядків у таблиці, "соціально", спробуйте подати запит нижче. За результатами в таблиці маємо 15 рядків.
>> ВИБЕРІТЬ КІЛЬКІСТЬ (*) З даних.соціальна;
Погляньте на метод COUNT (*), визначаючи деякі умови. Ми повинні отримати кількість рядків, де ім'я користувача таке саме, як "Мустафа". Ви бачите, що у нас є лише 4 записи для цього конкретного імені.
>> ВИБЕРІТЬ КІЛЬКІСТЬ (*) З даних.соціальні WHERE Користувач = 'Мустафа';
Щоб отримати загальну суму рядків, на яких веб-сайтом користувачів є „Instagram”, спробуйте подати нижче запит. У таблиці "соціальна" є лише 4 записи для веб-сайту "Instagram".
>> ВИБЕРІТЬ КІЛЬКІСТЬ (*) З даних.social WHERE Веб-сайт = 'Instagram';
Щоб отримати загальну кількість рядків, де «Вік» перевищує 18:
>> ВИБЕРІТЬ КІЛЬКІСТЬ (*) З даних.соціальні ДЕ Вік> 18;
Давайте отримаємо дані стовпців "Користувач" та "Веб-сайт" із таблиці, де ім'я користувача починається з алфавіту "М". Спробуйте нижченаведену інструкцію щодо оболонки.
>> ВИБЕРІТЬ користувача, веб-сайт ВІД даних.соціальні WHERE Користувач, як "M%";
MySQL COUNT (вираз)
У MySQL метод COUNT (вираз) використовується лише тоді, коли потрібно підрахувати ненульові значення стовпця 'вираз'. "Вираз" буде назвою будь-якого стовпця. Візьмемо простий приклад цього. Ми підраховували лише ненульові значення стовпця "Веб-сайт", який пов'язаний зі стовпцем "Вік", значення якого дорівнює "25". Побачити! У нас є лише 4 ненульові записи для користувачів віком від 25 років, які користуються веб-сайтами.
>> ВИБЕРІТЬ КІЛЬКІСТЬ (веб-сайт) З даних.соціальні ДЕ Вік = 25;
MySQL COUNT (вираз DISTNCT)
У MySQL метод COUNT (вираз DISTINCT) використовується для підсумовування ненульових значень та різних значень стовпця 'вираз'. Для підрахунку різної кількості ненульових значень у стовпці «Вік» ми використовували запит нижче. Ви знайдете 6 ненульових та чітких записів стовпця "Вік" із таблиці "соціальні". Це означає, що загалом у нас 6 людей різного віку.
>> ВИБЕРІТЬ КІЛЬКІСТЬ (ВИЗНАЧЕНИЙ вік) З даних.соціальна;
MySQL COUNT (IF (вираз))
Для великого акценту слід об’єднати COUNT () з функціями контролю потоку. Для початку, для частини виразу, що використовується в методі COUNT (), ви можете використовувати функцію IF (). Це може бути дуже корисно зробити для швидкого розподілу інформації всередині бази даних. Ми будемо підраховувати кількість рядків з різними віковими умовами та розділяти їх на три різні стовпці, які можна назвати категоріями. По-перше, COUNT (IF) буде підраховувати рядки віком менше 20 років і збереже цей рахунок у новому стовпці під назвою "Teenage". Другий COUNT (IF) - це підрахунок рядків віком від 20 до 30, зберігаючи їх у стовпці "Young". По-третє, останній підраховує рядки, вік яких перевищує 30 років, і зберігається у стовпці "Для дорослих". У нашому реєстрі 5 підлітків, 9 молодих і лише 1 зріла людина.
>> ВИБЕРИТИ КІЛЬКІСТЬ (ЯКЩО (Вік < 20,1,NULL)) 'Teenage', COUNT(IF(Age BETWEEN 20 AND 30,1,NULL)) 'Young', COUNT(IF(Age > 30,1, NULL)) "Зрілий" ВІД даних.соціальна;
MySQL COUNT (*) із реченням GROUP BY
Оператор GROUP BY - це інструкція SQL, яка використовується для групових рядків з однаковими значеннями. Він повертає загальну кількість значень, що перебувають у кожній групі. Наприклад, якщо ви хочете перевірити номер кожного користувача окремо, вам потрібно визначити стовпець "Користувач" із реченням GROUP BY під час підрахунку записів для кожного користувача за допомогою COUNT (*).
>> ВИБЕРІТЬ користувача, COUNT (*) ВІД даних.соціальний GROUP BY User;
Ви можете вибрати більше двох стовпців, виконуючи підрахунок рядків разом із реченням GROUP BY, як показано нижче.
>> ВИБЕРІТЬ користувача, вік, веб-сайт, COUNT (*) ВІД даних.соціальний веб-сайт GROUP BY;
Якщо ми хочемо підрахувати рядки, використовуючи речення WHERE, яке містить деякі умови поряд із GROUP BY та COUNT (*), ви також можете зробити це. Наведений нижче запит отримає та підрахує записи стовпців: "Користувач", "Веб-сайт" та "Вік", де значення веб-сайту має значення "Instagram" та "Snapchat". Ви бачите, що у нас є лише 1 запис для обох веб-сайтів для різних користувачів.
>> ВИБЕРІТЬ користувача, веб-сайт, вік, COUNT (*) ВІД даних.social WHERE Веб-сайт = 'Instagram' Або Веб-сайт = 'Snapchat' ГРУПА ЗА ВЕБ-сайтом, вік;
MySQL COUNT (*) із пропозицією GROUP BY та ORDER BY
Спробуємо речення GROUP BY та ORDER BY спільно з методом COUNT (). Давайте отримаємо та підрахуємо рядки таблиці „social“, розташовуючи дані за спаданням за допомогою цього запиту:
>> ВИБЕРІТЬ користувача, веб-сайт, вік, COUNT (*) ВІД даних.соціальна ГРУПА ЗА ВІКОМ ЗАМОВЛЕННЯ ЗА КІЛЬКОСТЮ (*) DESC;
Запит, зазначений нижче, спочатку підраховує рядки, а потім відображає єдині записи, кількість яких COUNT перевищує 2, за зростанням.
>> ВИБЕРІТЬ користувача, вік, COUNT (*) ВІД даних.соціальна ГРУПА ЗА ВІКОМ МАЄ КОЛИШКУ (*)> 2 ЗАМОВЛЕННЯ НА КІЛЬКІ (*) ASC;
Висновок
Ми пройшли всі можливі методи підрахунку відповідних або повторюваних записів, використовуючи метод COUNT () з різними іншими реченнями.