填空题
设有课程表(课程号,课程名,开课学期)和选课表(学号,课程号,成绩),现要利用开窗函数查询每门课程的课程名、开课学期及选该门课的学生人数(不包括没人选的课程)。请补全下列语句:
SELECT DISTINCT课程名,开课学期,COUNT(*)OVER(
1
BY T1.课程号)AS选课人数FROM课程表T1 JOIN选课表T2 ON T1.课程号=T2.课程号
【正确答案】
【答案解析】
PARTITION [解析] 开窗函数公式:函数名(列)OVER(选项)。OVER关键字表示把函数当成开窗函数而不是聚合函数。在SQL SERVER 2005/2008支持两种:排名开窗函数和聚集开窗函数。聚合开窗函数只能使用PARTITION BY子句或都不带任何语句,ORDER BY不能与聚合开窗函数一同使用。很多聚合函数都可以用作
窗口函数的运算,如SUM、AVC、MAX、MIN、COUNT。
提交答案
关闭