如何查找失败成绩的数量和共同平均数?

时间:2016-01-10 18:01:08

标签: sql sqlite select average

我有一张学生和他们的成绩表。

如何计算失败成绩的数量( <50 ) 并使用 sqlite 查找一般平均值(我的意思是每个学生的平均值)?

这是表格(studentTable):

sID LessonID grade
1     1      45
1     2      50
1     3      65
2     1      44
2     2      22
2     3      91

我希望结果如下:

sID  noOfFails   Average
1       1         53
2       2          5

3 个答案:

答案 0 :(得分:1)

您可以在case函数中使用count表达式:

SELECT sID, COUNT(CASE WHEN grade < 50 THEN 1 END) AS noOfFails, AVG(grade)
FROM   mytable

答案 1 :(得分:1)

尝试

SELECT 
   sID,
   SUM(CASE WHEN grade < 50 THEN 1 ELSE 0 END) AS noOfFails,
   AVG(grade) AS Average
FROM studentTable
GROUP BY sID

http://sqlfiddle.com/#!5/fcd13/1

演示

答案 2 :(得分:0)

您可以按如下方式运行它:

  

SELECT sID,COUNT(IIF(等级<50,1,NULL))为noOfFails,AVG(等级)为平均值   来自studentTable GROUP BY sID

enter image description here