Имеется таблица friends, которая содержит 4 столбца: "№, User_ID1, User_ID2, FrDate", соотв. порядковый номер, ID первого и второго пользователей и дата начала дружбы. Требуется исключить дублирующие записи, при условии, что столбцы User_ID1 и User_ID2 являются взаимозаменяемыми, т.е. User_ID1 = 1, User_ID2 = 2 и User_ID1 = 2, User_ID = 1 - равнозначны (дубликаты) и оставить нужно ту запись, которая раньше по дате. Всю голову поломал, пытался использовать курсоры, не особо вышло.
Я попытался совместить обычную таблицу и инвертированную, чтобы сравнить столбцы, но тоже не все значения исключаются.
SELECT DISTINCT *
FROM (
SELECT DISTINCT User_ID1, User_ID2, FrDate, N
FROM friends AS B GROUP BY FrDate
UNION SELECT DISTINCT User_ID2, User_ID1, FrDate, N
FROM friends AS B GROUP BY FrDate
) AS A
GROUP BY A.User_ID2, A.User_ID1, A.FrDate
То есть из исходной таблицы:
| User_ID1 | User_ID2 | FrDate | N |
| 1 | 2 | 2019-01-05| 1 |
| 2 | 1 | 2020-05-12| 2 |
| 3 | 4 | 2009-11-15| 3 |
| 5 | 7 | 2007-01-01| 4 |
Должна получиться:
| User_ID1 | User_ID2 | FrDate |
| 1 | 2 | 2019-01-05|
| 3 | 4 | 2009-11-15|
| 5 | 7 | 2007-01-01|
Заранее спасибо за помощь!