Найти дубликаты данных в MySQL
Задача
Есть много случаев, когда вам нужно найти повторяющиеся значения в столбце таблицы MySql. Часто вы можете посчитать количество повторяющихся значений в таблице MySQL.
В этой статье мы обсудили запрос, в котором вы можете найти дубликаты, тройные, четырехкратные (или более) данные из таблицы MySQL.
Мы обсудили, как найти повторяющиеся значения с помощью INNER JOIN и подзапроса, INNER JOIN и DISTINCT, а также как подсчитать повторяющиеся значения с помощью GROUP BY и HAVING.
Стол в вопросе
Мы использовали таблицу под названием «item» для применения запроса:
Название таблицы: элемент
Структура: item_code varchar (20), значение int (11), количество int (11), где item_code - первичный ключ.
Использование INNER JOIN и подзапроса
Теперь мы хотим получить подробную информацию о тех записях, где поле количества имеет значения дубликатов / дубликатов. На изображении выше значения, отмеченные красным прямоугольником, существуют более одного раза.
Вот запрос:
Код:
SELECT item_code, value, item.quantity
FROM item
INNER JOIN(
SELECT quantity
FROM item
GROUP BY quantity
HAVING COUNT(item_code) >1
)temp ON item.quantity= temp.quantity;
Пример вывода:
Чтобы получить вышеуказанный результат, мы использовали запрос с оператором INNER JOIN ( INNER JOIN выбирает все строки из обеих участвующих таблиц, если между столбцами есть совпадение .). INNER JOIN использует основную таблицу 'item' и временную таблицу 'temp', данные которой поступают из подзапроса. Вот подзапрос и его вывод:
Код:
SELECT quantity
FROM item
GROUP BY quantity
HAVING COUNT(item_code) >1
Пример вывода:
Теперь следующий основной запрос будет выполняться для таблиц item и temp, где общим полем является количество, а результат будет следующим:
Код:
SELECT item_code, value, item.quantity
FROM item
INNER JOIN temp ON item.quantity= temp.quantity;
Использование INNER JOIN и DISTINCT
Вы можете использовать следующий запрос, чтобы получить тот же результат. Здесь мы применяем INNER JOIN для таблицы с самим собой. Так как одно и то же количественное значение существует в более чем двух записях, используется предложение DISTINCT.
Вот код и вывод:
Код:
SELECT distinct a.item_code, a.value, a.quantity
FROM item a
INNER JOIN item b ON a.quantity = b.quantity
WHERE a.item_code <> b.item_code
Пример вывода:
Подсчет повторяющихся данных в MySQL
Следующий запрос подсчитывает те записи, в которых поле количества содержит дубликаты / дубликаты (или более) данных.
Данные таблицы:
Код:
SELECT item_code, COUNT( quantity ) x
FROM item
GROUP BY quantity
HAVING x >1
Пример вывода:
Подсчет повторяющихся записей в MySQL
Чтобы подсчитать общее количество дубликатов (или более) «количество» таблицы «элемент», вы можете использовать следующий запрос:
Код:
SELECT count(*) AS Total_duplicate_count
FROM
(SELECT item_code FROM item
GROUP BY quantity HAVING COUNT(quantity) > 1
)AS x
Пример вывода:
Предыдущая: Разные функции MySQL
Далее: строки, содержащие максимум группы для столбца
Новый контент: Composer: менеджер зависимостей для PHP , R программирования