MySQL查询在反馈表的不同列中计算1的出现次数

时间:2016-06-25 18:05:44

标签: mysql sql

我想计算列commskillabilityskillinterestpresentationmethodology,{{1}中所有'1'的出现次数},maintainsclasspunctual。 我的表格“反馈”包含以下列:

  • Fid-feedback我
  • Tname-教师姓名
  • Sname-subject名称
  • 学生姓名 - 学生姓名
  • 班级学生
  • 课程部分
  • commskill-沟通技巧
  • 能力教学能力
  • 演示 - 老师的演讲技巧
  • 方法论 - 教师跟随教学的方法
  • 兴趣 - 学生在该班级中的兴趣
  • 准时 - 教师的准时性
  • maintainclass-维护班级纪律
  • 态度 - 教师对学生的态度 * tid-老师的身份证件

fid的值是自动增量,所有技能的等级都是(1优,2优,3平均,4 - 低于平均值)。

我已经尝试过这个查询:

attitude

但答案显示出乎意料而且是错误的。

1 个答案:

答案 0 :(得分:2)

获得' 1'的总出现次数。在列commskill,abilityskill,兴趣,演示,方法,维护类,准时,态度。

   SELECT
      sum(if(commskill=1,1,0)
    + sum(if(attitude =1,1,0)
    + sum(if(presentation =1,1,0)
    + sum(if(abilityskill=1,1,0)
    + sum(if(interest=1,1,0)
    + sum(if(punctual =1,1,0) 
    + sum(if(maintainsclass=1,1,0) 
    + sum(if(methodology =1,1,0)
   AS excellent
   FROM feedback;

获得每位老师的成绩

SELECT 
tname
, sname
, sum(if(commskill=1,1,0)
  + sum(if(attitude =1,1,0)
  + sum(if(presentation =1,1,0)
  + sum(if(abilityskill=1,1,0)
  + sum(if(interest=1,1,0)
  + sum(if(punctual =1,1,0) 
  + sum(if(maintainsclass=1,1,0) 
  + sum(if(methodology =1,1,0)

AS优秀    来自反馈    GROUP BY tid;