mysql - 如何统计sql中回答测验的总id

标签 mysql sql

我有两个这样的表:

测验

quizNum | quizName
------------------
1       | chapter 1
2       | chapter 2
3       | chapter 3

学生评估

stuNum | quizNum | assessmentMark
-----------------------------------
2012   | 1       | 10
2012   | 2       | 8
2013   | 1       | 10
2014   | 1       | 5

我想要得到这样的结果

quizNum | quizName      | attempedstudent 
--------------------------------------------
1       | chapter 1     | 3        
2       | chapter 2     | 1        
3       | chapter 3     | 0        

描述:所有两个表都已连接..我想通过 q​​uziNum 计算完成测验的学生总数

这是我尝试过的示例组合:

$sql = "select a.quizNum, (count(a.stuNum)) as attemptedstudent ,c.quizName,c.quizDateFrom from studentassessment a join quiz c on a.quizNum=c.quizNum";

我是这样写的,结果显示它计算了所有的stuNum(学生)。我是否必须使用另一种方式,例如不同的方式?

最佳答案

您需要将Quizstudentassessment 进行左连接,以确保显示Quiz 中的所有数据以及计数。

select
q.quizNum,
q.quizName,
count(sa.stuNum) as attempedstudent
from Quiz q
left join studentassessment sa on sa.quizNum = q.quizNum
group by q.quizNum;

关于mysql - 如何统计sql中回答测验的总id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27109333/

相关文章:

sql - 需要为文本正文中的特定单词格式化 BigQuery 中的表格

sql - "entity"特定序列

c# - 多个用户使用的 Winform 应用程序登录

MySQL 错误 150

mysql - SQL JOIN 给出双重结果

mysql - 对特定索引中的最后一条记录求和

数据库服务器。为什么 [几乎] 任何类型的字段值都可以在查询/DML 中被视为带引号的字符串?

php - CakePHP 查询返回不同的结果然后直接在 sql 中运行

javascript - 成功的 ajax 返回后模态框不会关闭

mysql - 如何在 mySQL 查询中为每个结果插入一条记录?