我有一个表,其中包含作业ID,学生ID,作业名称和作业日期。我必须编写一个SQL查询来获取在同一日期提交2份作业的学生列表。我还需要在输出中分配assignment_name和assignment_date。我陷入了我可以写哪个查询来获取此数据的困境。任何帮助将不胜感激
答案 0 :(得分:0)
您可以尝试这样的事情
在MYSQL查询中
SELECT student_id, training_date, GROUP_CONCAT(assignment_name)
FROM
table_name
GROUP BY student_id, training_date HAVING COUNT(*) = 2
“ Is there any function in oracle similar to group_concat in mysql?”可以帮助您替换 oracle SQL
中的GROUP_CONCAT答案 1 :(得分:0)
您可以使用exists
:
select t.*
from table t
where exists (select 1
from table t1
where t1.student_id = t.student_id and
t1.training_date = t.training_date and
t1.assignment_id <> t.assignment_id
);