Sql Server R2 2008
Mysql
Access
Oracle
Sqlite
我的电脑是Windows7 64位,所以我安装的是Sql server2008 r2(64位).大伙安装的时候也一定要记得看一下自己的操作系统是多少位.你是32位操作系统的就安装32位的Sqlserver 版本不限制. 2005 2012都可以.当然,我们的Sql语句在很多数据库中都是通用的,比如像Mysql数据库 Access数据库. Oracle数据库. Sqlite数据库 .甚至在我们的Excel中也可以使用Sql语句.
废话不多说,在我的Sqlserver中新建一个表和一些数据,方便我们学习后面的Group by语句. 如果你是其他数据库也是这个道理. 我用的是微软Sqlserver数据库.
写上一个创建表的 sql语句. 当然,我们也可以用设计图创建.当然我下面的写法只支持sql server2008数据库以上的写法.create table 学生表( 学生id int identity(1,1) not null, 学号 int null, 期中分数 int null, 期末分数 int null );insert into 学生表(学号,期中分数,期末分数)values(1,85,80),(2,null,75),(3,null,85),(4,80,null),(5,85,80);
select * from 学生表;一条查询语句,我们看到了刚才插入的全部结果.
我们来显示学生成绩中,期中考试分数最低的和期末考试分数最好的.select MIN(期中分数) AS 期中最低分数,MAX (期末分数) AS 期末最高分数 from 学生表;
我们来求一下期中考试分数的平均分数.我们数据库里面一共有5条数据.85,null,null,80,85我们的结果是83分.我们的聚合函数如果遇到null值的话,就会跳过去,不计算.所以我们的结果是(85+80+85)/3=83!
查询学生表中有效的期末分数,得出的结果是3条.select count (期中分数) from 学生表;所以,大家一定要记得.聚合函数遇到空值会跳过去.
所有的聚合方式使用都是 函数名(字段) 对这一个字段进行聚合.
有一个特列那就是count(*) 可以使用*号,也可以使用字段.
聚合函数如果遇到null值的话,就会跳过去,不计算.