gpt4 book ai didi

mysql - SQL查询-动态子查询

转载 作者:行者123 更新时间:2023-11-29 02:03:24 24 4
gpt4 key购买 nike

我在尝试创建查询时遇到问题:

选择特定一周内未完成所有 同行评议的所有学生。

背景:每个星期,每个学生都必须对同一组中的同龄人进行同行评议。

每个组的大小可能不同,这是我遇到的问题。

这是我目前的测试数据:

peer review table

student table

表1:同行评审表
表2:学生表。

这是我的初始查询,根据他们所做的同行评审的数量对所有学生进行分组。我现在需要检查 count(*) 是否小于每个学生的小组人数:

SELECT * 
FROM peerreview
RIGHT JOIN student
ON student. studentID = peerreview.reviewer
WHERE week = 11
GROUP BY studentID
HAVING Count(*) < ????

最佳答案

以下查询将返回对同一组中所有学生进行了评论的学生。

 SELECT a.reviewer, 
a.groupid
FROM (SELECT student2.studentID AS reviewer,
student1.groupid,
Count(*) AS cnt
FROM student student1
INNER JOIN peerreview
ON student1.studentID = peerreview.reviewee
INNER JOIN STUDENT STUDENT2
ON student2.studentID = peerreview.reviewer
WHERE student2.groupid = student2.groupid
AND peerreview.week = 11
GROUP BY student1.groupid,
student2.studentID) a
INNER JOIN (SELECT groupid,
Count(*) - 1 AS cnt
FROM student
GROUP BY groupid) b
ON a.groupid = b.groupid
AND a.cnt = b.cnt

See SqlFiddle

关于mysql - SQL查询-动态子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com