使用聚合函数进行统计汇总
count:返回结果集中行的数目
sum:返回结果集中所有值的总和
avg:返回结果集中所有值的平均值
max:返回结果集中所有值的最大值
min:返回结果集中所有值的最小值
语法形式如下:
select count(计数规范) from 表名
select sum(计数规范) from 表名
select avg(计数规范) from 表名
select max(计数规范) from 表名
select min(计数规范) from 表名
计数规范:
*:计数所有选择的行,包括null值
all列:计数指定列的所有的非空值行,如果没有仅仅是指定列而不带all或者distinct,这是默认操作
distinct列:计数指定列的所有唯一非空值行
可以使用前面学过的命名计算列一样的方法来重新命名count列,如下:
select count(计数规范) as 列名 from 表名
数据分组
使用关键字group by 子句来对数据分组,其典型语法如下:
select 列A,聚合函数(聚合函数规范) from 表名
where 过滤条件
group by 列A
注意:在查询中实际上不需要返回列A,它的主要用处在于我们可以利用它来区分组。与其他包含聚合函数的查询一样,我们不能再返回的数据中包含其它列,因为其它的列在这种情况下不包含逻辑意义
使用having子句
having子句放在group by子句之后,其形式为:having过滤条件
例:select studId,Ave(mak)as averageMark
from studExam
group by studId
having AVG(mak)< 50 or AVG(mak)> 70;
sql语句的执行顺序
select子句
from子句
where子句
group by 子句
having子句
order子句
联接
1、使用两表相等联接
例如:select table1.column1,table1.column2,table2.column3 from
table1,table2 where table1.column1=table2.column2
可以使用关键字jion on 进行联接
select table1.column1,table1.column2,table2.column3 from
table1 join table2 on table1.column1=table2.column2
2、使用非相等联接
select table1.column1,table1.column2,table2.column3 from
table1,table2 where table1.column1 < table2.column2
3、内联接
inner join on
4、外连接
左外联接:left join on
右外联接:right join on
count:返回结果集中行的数目
sum:返回结果集中所有值的总和
avg:返回结果集中所有值的平均值
max:返回结果集中所有值的最大值
min:返回结果集中所有值的最小值
语法形式如下:
select count(计数规范) from 表名
select sum(计数规范) from 表名
select avg(计数规范) from 表名
select max(计数规范) from 表名
select min(计数规范) from 表名
计数规范:
*:计数所有选择的行,包括null值
all列:计数指定列的所有的非空值行,如果没有仅仅是指定列而不带all或者distinct,这是默认操作
distinct列:计数指定列的所有唯一非空值行
可以使用前面学过的命名计算列一样的方法来重新命名count列,如下:
select count(计数规范) as 列名 from 表名
数据分组
使用关键字group by 子句来对数据分组,其典型语法如下:
select 列A,聚合函数(聚合函数规范) from 表名
where 过滤条件
group by 列A
注意:在查询中实际上不需要返回列A,它的主要用处在于我们可以利用它来区分组。与其他包含聚合函数的查询一样,我们不能再返回的数据中包含其它列,因为其它的列在这种情况下不包含逻辑意义
使用having子句
having子句放在group by子句之后,其形式为:having过滤条件
例:select studId,Ave(mak)as averageMark
from studExam
group by studId
having AVG(mak)< 50 or AVG(mak)> 70;
sql语句的执行顺序
select子句
from子句
where子句
group by 子句
having子句
order子句
联接
1、使用两表相等联接
例如:select table1.column1,table1.column2,table2.column3 from
table1,table2 where table1.column1=table2.column2
可以使用关键字jion on 进行联接
select table1.column1,table1.column2,table2.column3 from
table1 join table2 on table1.column1=table2.column2
2、使用非相等联接
select table1.column1,table1.column2,table2.column3 from
table1,table2 where table1.column1 < table2.column2
3、内联接
inner join on
4、外连接
左外联接:left join on
右外联接:right join on