У меня есть таблица ниже:
MariaDB [groupdb]> select * from album;
+----+---------+---------+
| id | artist | user_id |
+----+---------+---------+
| 1 | ArtistX | 45677 |
| 2 | ArtistY | 378798 |
| 3 | ArtistX | 45677 |
| 4 | ArtistZ | 123456 |
| 5 | ArtistY | 888888 |
| 6 | ArtistX | 2312 |
| 7 | ArtistY | 378798 |
| 8 | ArtistY | 888888 |
| 9 | ArtistY | 888888 |
+----+---------+---------+
9 rows in set (0.000 sec)
Я попытался найти дубликаты записей с запросом ниже:
MariaDB [groupdb]> select * from album where artist IN (select artist from album group by artist having count(artist)>1) and user_id IN (select user_id from album group by user_id having count(user_id)>1);
+----+---------+---------+
| id | artist | user_id |
+----+---------+---------+
| 1 | ArtistX | 45677 |
| 2 | ArtistY | 378798 |
| 3 | ArtistX | 45677 |
| 5 | ArtistY | 888888 |
| 7 | ArtistY | 378798 |
| 8 | ArtistY | 888888 |
| 9 | ArtistY | 888888 |
+----+---------+---------+
7 rows in set (0.001 sec)
Это все хорошо и хорошо. Хотя я хочу, чтобы в моем наборе результатов был список дубликатов, кроме первого. то есть аналогично приведенному ниже.
ОЖИДАЕМЫЙ ВЫХОД
+----+---------+---------+
| id | artist | user_id |
+----+---------+---------+
| 3 | ArtistX | 45677 |
| 7 | ArtistY | 378798 |
| 8 | ArtistY | 888888 |
| 9 | ArtistY | 888888 |
+----+---------+---------+
Как вы можете видеть выше, это список дубликатов, исключая первый.
ПРИМЕЧАНИЕ: Чтобы запись была дубликатом, оба Artist и user_id должны быть одинаковыми.
Моя задача придумать запрос, ведущий к этому результату выше.