Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要更正Sql查询吗_Sql_Sql Server - Fatal编程技术网

需要更正Sql查询吗

需要更正Sql查询吗,sql,sql-server,Sql,Sql Server,我需要一些关于以下查询的帮助。我需要找到: 每个校园每学期的平均人数 我的表格结构是: 表名-注册 纵队 学生证 校园 年 批处理 学期 在校园、年、学期和批次的帮助下,我可以识别每个独特的学期。更多关于我的student\u id的信息在数据库中重复 我没有跟踪,但这没有帮助。所以我需要一些帮助 SELECT semester,year,campus FROM regestration GROUP BY semester, year, campus ORDER BY co

我需要一些关于以下查询的帮助。我需要找到:

每个校园每学期的平均人数

我的表格结构是:

  • 表名-注册
  • 纵队
    • 学生证
    • 校园
    • 批处理
    • 学期
校园
学期
批次
的帮助下,我可以识别每个独特的学期。更多关于我的
student\u id
的信息在数据库中重复

我没有跟踪,但这没有帮助。所以我需要一些帮助

SELECT semester,year,campus
  FROM regestration
  GROUP BY  semester, year, campus
  ORDER BY count(*) desc
尝试以下方法:

SELECT year,campus, AVG(CountOfStudents)
FROM
(
  SELECT semester,year,campus, count(*) as CountOfStudents
  FROM regestration
  GROUP BY  semester, year, campus
) t
GROUP BY  year, campus

要获得每个学期每个校区的学生人数,您需要在查询中添加COUNT(*):

SELECT semester, year, campus, COUNT(*) as students
    FROM registration
    GROUP BY semester, year, campus
不过,我不知道你在这里想要的平均值是多少。

怎么样

select avg(students), campus from (
  select count(student_id) students, campus from registration
   group by semester, year, campus
) group by campus

拼写为“registration”(注册)。外部选择将返回内部选择的结果,因为外部group by实际上不会对任何内容进行分组。@pointy的回答可能会有所改进,具体取决于数据在regestration中的存储方式。但是,甚至可能需要
计数(不同的学生id)
来代替
计数(*)
。在一个学期、一年、一个校区的注册表中,每个学生可以有多个条目吗?@zmbq:谢谢。我编辑了我的答案,以便更好地符合这个问题。已将外部组中的学期从中删除,因为表示他们希望每个校区(可能是每年)有学生。是的,在regestration表中每个学生可以有多个条目。在我将组中的year属性添加到campus中后,这很好并且有效。谢谢