Я хочу удалить повторяющиеся строки из нижеследующего запроса.Удалить дубликаты из вывода Oracle SQL Query
SELECT CONTACTS.ROWID as ROW_PASS,
DUTY_ROTA.ROWID as ROW_PASS_ROTA,
DUTY_ROTA.DUTY_DATE AS DUTY_DATE,
DUTY_ROTA.DUTY_TYPE AS DUTY_TYPE,
DUTY_ROTA.DUTY_OFFICER AS DUTY_OFFICER,
DUTY_TYPES.DESCRIPTION AS DUTY_DESC,
CONTACTS.SNAME AS FULLNAME,
CONTACTS.MOBILE AS MOBILE_NO,
CONTACTS.TELNO AS OFFICE_TEL
FROM DUTY_ROTA,
DUTY_TYPES,
CONTACTS
WHERE DUTY_DATE between SYSDATE-1
AND SYSDATE+18
AND DUTY_ROTA.DUTY_TYPE = DUTY_TYPES.DUTY_TYPE
AND duty_rota.DUTY_OFFICER = contacts.duty_id
AND SNAME IS NOT NULL
Я пытался определить дубликаты ниже способом - (принимая COUNT (*) и группу по столбцам)
Я пытался что-то вроде ниже фрагмент кода тоже, но не помогает Я получаю правильный parenthisis отсутствующий ошибка
SELECT CONTACTS.SNAME AS FULLNAME,
CONTACTS.ROWID as ROW_ID_CONTACT,
DUTY_ROTA.ROWID as ROW_ID_ROTA,
DUTY_ROTA.DUTY_TYPE AS DUTY_TYPE,
DUTY_ROTA.DUTY_OFFICER AS DUTY_OFFICER,
DUTY_TYPES.DESCRIPTION AS DUTY_DESC,
CONTACTS.MOBILE AS MOBILE_NO,
CONTACTS.OFFICETEL AS OFFICE_TEL,
Row_number()
OVER (
partition BY CONTACTS.SNAME AS FULLNAME,
CONTACTS.ROWID as ROW_ID_CONTACT,
DUTY_ROTA.ROWID as ROW_ID_ROTA,
DUTY_ROTA.DUTY_TYPE AS DUTY_TYPE,
DUTY_ROTA.DUTY_OFFICER AS DUTY_OFFICER,
DUTY_TYPES.DESCRIPTION AS DUTY_DESC,
CONTACTS.MOBILE AS MOBILE_NO,
CONTACTS.OFFICETEL AS OFFICE_TEL
) AS rn
FROM DUTY_ROTA,DUTY_TYPES,CONTACTS WHERE DUTY_DATE between SYSDATE and SYSDATE+300 and contacts.duty_id = duty_rota.duty_officer
AND DUTY_ROTA.DUTY_TYPE = DUTY_TYPES.DUTY_TYPE AND SNAME IS NOT NULL
SELECT DISTINCT? – Mihai
И ваша проблема? –
Проблема заключается в том, что она не работает, она не получает никаких значений (*)> 2, хотя, просматривая, я могу видеть повторяющиеся столбцы. – Subhamoy