我正在尝试在创建表格时创建一个非常特殊的计数。 所以,有些用户会关注课程。在那些课程中,有很多问题(考试)==>我想知道有多少用户提交了问题的答案。
我已经获取了第一次回答的用户数量(他们可以随时回答问题)。所以我可以显示第一个答案的平均成绩。
所以,让我们说,他们第一次回答问题A,这是分散:
所以在这里,在我的代码中,我想为问题A的每一行显示一个包含65(用户总和)的新列。所以每个问题都有一个......
到目前为止,这就是我所做的:
DROP TABLE IF EXISTS First_Attempt_Problem_Grades_Wesh;
CREATE TABLE First_Attempt_Problem_Grades_Wesh (
UserID VARCHAR(255),
problemID VARCHAR(255),
First_Grade INT UNSIGNED,
Platform VARCHAR(20),
DataPackageID VARCHAR(255),
NStudent_Per_DataPackageId INT UNSIGNED,
INDEX (UserID)
);
INSERT INTO First_Attempt_Problem_Grades_Wesh
SELECT
x.AccountUserID as UserID,
x.ProblemID,
x.Grade as First_Grade,
'Wesh' AS Platform,
x.DataPackageID,
NStudent_Per_DataPackageId
FROM wesh_problem_events_with_info x
INNER JOIN
(SELECT
DISTINCT p.AccountUserID,
p.ProblemID,
MIN(p.Timestamp) as First_time,
COUNT(p.AccountUserID) as NStudent_Per_DataPackageId
FROM wesh_problem_events_with_info p
GROUP BY p.AccountUserID, p.ProblemID) t
ON x.AccountUserID = t.AccountUserID AND x.ProblemID = t.ProblemID AND x.Timestamp = t.First_time
WHERE x.Grade IS NOT NULL
但是对于这个表,我在“NStudent_Per_DataPackageId”列中得到的数字是错误的...正如你所看到的:
实际上,问题1NLpP在图像底部被提及3次,返回的数字是1 ...如何正确地实现此查询?