Bablu Ahmed
Bablu Ahmed

Reputation: 5010

how to get unique records after group by getting duplicate records in oracle

I am trying to get unique records but getting duplicates how to prevent this please help me the code is as follows:

SELECT a.EXAM_DEGREE_ID,a.MAJOR_GROUP_ID,a.INSTITUTION,a.BOARD,a.RESULT_GRADE,a.PASSING_YEAR,f.ELEMENT_URL
FROM student_acadimicinfo a
left join m00_lkpdata b on a.EXAM_DEGREE_ID=b.LKP_ID
left join m00_lkpdata c on a.MAJOR_GROUP_ID=c.LKP_ID
left join m00_lkpdata d on a.BOARD = d.LKP_ID
left join STUDENT_PERSONAL_INFO e on e.STUDENT_ID = a.STUDENT_ID
left join SKILL_DEV_ELEMENT f on f.APPLICANT_ID = e.APPLICANT_ID
WHERE a.STUDENT_ID ='341'
group by a.EXAM_DEGREE_ID,a.MAJOR_GROUP_ID,a.INSTITUTION,a.BOARD,a.RESULT_GRADE,a.PASSING_YEAR,f.ELEMENT_URL

Result: enter image description here

Thanks

Upvotes: 1

Views: 52

Answers (1)

Yevhen Zhovtonoh
Yevhen Zhovtonoh

Reputation: 241

As I see rows which you mentioned aren't duplicate as they have different ELEMENT_URL. You could exclude ELEMENT_URL from group by and decide with help of aggregation function what show into this field. For example:

SELECT a.EXAM_DEGREE_ID,a.MAJOR_GROUP_ID,a.INSTITUTION,a.BOARD,a.RESULT_GRADE,a.PASSING_YEAR, max(f.ELEMENT_URL)
FROM student_acadimicinfo a
left join m00_lkpdata b on a.EXAM_DEGREE_ID=b.LKP_ID
left join m00_lkpdata c on a.MAJOR_GROUP_ID=c.LKP_ID
left join m00_lkpdata d on a.BOARD = d.LKP_ID
left join STUDENT_PERSONAL_INFO e on e.STUDENT_ID = a.STUDENT_ID
left join SKILL_DEV_ELEMENT f on f.APPLICANT_ID = e.APPLICANT_ID
WHERE a.STUDENT_ID ='341'
group by a.EXAM_DEGREE_ID,a.MAJOR_GROUP_ID,a.INSTITUTION,a.BOARD,a.RESULT_GRADE,a.PASSING_YEAR

Upvotes: 2

Related Questions