首页 > 解决方案 > 使用 oracle SQL 查找重复项

问题描述

我正在检查学生的考试成绩,并且有几个不同的感兴趣的表格。

STUDENTTEST 有 testID、test_date 和 studentID。STUDENTS 有 student_name,它有一个名为 ID 的变量,该变量链接到 STUDENTTEST 的 studentid。

我想找到有 testID 和 test_date 相同记录的学生。我希望能够有一个指向学生表的链接,这样我就可以看到哪些学生的名字有重复。

我希望这是有道理的!谢谢!

标签: sqloracle

解决方案


您可以join使用studentsandstudent_tests表,按学生、测试 ID 和测试日期分组,然后使用having子句过滤以仅保留重复项:

select s.id, s.student_name, t.test_id, t.test_date, count(*) cnt_duplicates
from students s
inner join student_tests t on t.student_id = s.id
group by s.id, s.student_name, t.test_id, t.test_date
having count(*) > 1

推荐阅读