TSL语言基础 > SQL基础到TS-SQL > TS-SQL入门 > select查询语句

SELECT统计与分组、聚集函数    

  •   通过从上面我们看到的例子我们已经体会到了SQL的优越性,我们现在再来一个新的需求。假定我们现在要统计出班级的平均分。当然,我们同样可以采用循环来做:
    SUM:=0;
    For I:=0 to length(EnglishScore)-1 do
    Begin
      SUM+=EnglishScore[I];
    End;
    AVG:=SUM/length(EnglishScore); //AVG里存贮英语成绩没及格
    同样的,我们也可以把这个功能封装起来:
    Function AvgFunction(A,Field);
      Begin
      SUM:=0;
      For I:=0 to length(A)-1 do
      Begin
        SUM:=SUM+A[I][Field];
      End;
      AVG:=SUM/length(A);
      Return AVG;
    End;
      我们调用AvgFunction(EnglishScore,"英语成绩")就可以得到平均值了。
      在SQL里,这类需求的实现统称为聚集函数。
      我们采用select AvgOf(["英语成绩"]) from EnglishScore end;就可以完成上述功能。
      当然我们需要统计85分以上的成绩的平均成绩的时候,使用select AvgOf(["英语成绩"]) from EnglishScore where ["英语成绩"]>85 end就可以了。
      除了AvgOf求出平均数以外,还有例如Sumof可以求和,Countof可以求个数,Maxof、MinOf求最大最小值等等数十个聚集函数,可以解决常用的统计功能,用户还可以使用TS-SQL的AggOf来扩展聚集函数,关于聚集函数的扩展我们在稍后章节会另行讲述。
内容