SQL как выбрать повторяющиеся (повторные) записи из таблицы

в разделе Программирование | Метки: MySQL

Предположим есть таблица в которой хранятся id документов, нам нужно узнать какие документы используются больше одного раза.

Вот пример таблицы

mysql> SELECT * FROM data_sources LIMIT 1;
+----+-------------------+--------------+
| id | TABLE_NAME        | table_row_id |
+----+-------------------+--------------+
|  1 | cs_consult_p_data |         5279 |
+----+-------------------+--------------+
1 ROW IN SET (0.00 sec)

Запрос для выбора повторяющихся записей

SELECT table_row_id,COUNT(*) FROM data_sources GROUP BY table_row_id HAVING COUNT(*) > 1 ORDER BY COUNT(*);

mysql> SELECT table_row_id,COUNT(*) FROM data_sources GROUP BY table_row_id HAVING COUNT(*) > 1 ORDER BY COUNT(*) LIMIT 5;
+--------------+----------+
| table_row_id | COUNT(*) |
+--------------+----------+
|         1174 |        2 |
|        11767 |        2 |
|        14217 |        2 |
|       221972 |        2 |
|       331371 |        2 |
+--------------+----------+
5 ROWS IN SET (0.00 sec)