有一个学生表,每行都是一个学生的成绩==========================================================
|record_id | student name | course | school_name | score |
==========================================================其中
record_id 是key
不同的学生可以在不同的课程内有相应的成绩score 但是现在要做的东西是将以“成绩”为单位变为以“学校”为单位,
即想生成一个新表,或者查询,成为如下的格式===================================================
|school_id | school_name | course | average score |
===================================================也就是说
想查询每个学校关于某门课程的平均成绩(就是某校某门课成绩总和除以某校某门课上课的总人数了)请问,如何设计查询?
谢谢

解决方案 »

  1.   

    select school_name,course,avg(score)
    from 有一个学生表
    group by school_name,course
      

  2.   

    找不到你的school_id从哪来的。   建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  3.   

    谢谢斑竹,果然高效其实school id 就是自动产生的key,不一定来自于某个表关于斑竹的问题  1. 你的 create table xxx .. 语句    ----------  都是用IDE搞得,没的语句
      2. 你的 insert into xxx ... 语句    ----------  也是直接从excel import的
      3. 结果是什么样,(并给以简单的算法描述) -------------- 如前贴所述
      4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)   -------- 是伟大的mysql谢谢斑竹另外想再请教几个问题第一,group by 的 两个元素的前后顺序是否重要? highschool code 和 course_id可否调换?
    第二,avg(score)如何能够保证是某个学校的一门课的平均值而不是所有成绩的平均值?第三,请问,如上的问题除了论坛那本书有较好的解答?
    谢谢
      

  4.   

    第一,group by 的 两个元素的前后顺序是否重要? highschool code 和 course_id可否调换?
    可以,你自己试一下就知道了。第二,avg(score)如何能够保证是某个学校的一门课的平均值而不是所有成绩的平均值?
    AVG本身就是平均值,按GROUP进行分组。第三,请问,如上的问题除了论坛那本书有较好的解答?先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  5.   


    斑竹威武!剩下一个问题avg若按照group分组,如何判别是哪个group by的(school_id? course?)?
      

  6.   

    group by school_name,course这儿不是由语句指明了吗?!建议先看一下相关资料。