Mysq數據庫中提供了許多統計函數,可供我們進行統計、求某列最大值、某列最小值、平均值、總和。
在這裏先創建一張學生成績表
CREATE TABLE `score` (
`id` int(11) NOT NULL auto_increment,
`chinese` decimal(4,2) default NULL,
`english` decimal(4,2) default NULL,
`math` decimal(4,2) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1 | 91.02 | 86.23 | 77.56 |
2 | 89.36 | 85.21 | 87.39 |
3 | 95.23 | 90.31 | 90.01 |
1.count()函數
在這裏就不詳細講述,請參考《Mysql的count函數》。
2.計算字段的平均值avg()
avg中函數的參數可以是*,帶表對所有數值列求平均值;也可以指定幾個列,不過這些列都必須是數值列。
計算語文成績的平均值
select avg(chinese) as '語文成績平均分' from score;
3.計算字段之和sum()
sum中的函數參數可以是*,表示對所有的數值列求和;也可以指定結果列,不過這些列必須是數值列。
計算英語成績的總分
select sum(english) as '英語成績總分' from score;
4.計算字段的最大值max()
這個函數的參數同上。
計算數學成績最高的分數
select max(math) from score;
5.計算字段的最小值min()
這個函數的參數同上。
計算數學成績最低分數
select min(math) from score;
最後需要注意的是,如果select語句後面還跟有其他列,那麼就必須在sql語句的尾部加上group by子句,否則會報錯。
select id,min(math) from score group by math;