mysql中COUNT與SUM的區別html
首先建立個表說明問題mysql
CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` varchar(20) default NULL, `score` tinyint(4) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8
插入一些數據,sql
insert into result values ('張三','數學',90), ('張三','語文',50), ('張三','地理',40), ('李四','語文',55), ('李四','政治',45), ('王五','政治',30), ('趙六','語文',100), ('趙六','數學',99), ('趙六','品德',98);
要求:查詢出2門及2門以上不及格者的平均成績。編程
1. select name,sum(score < 60) ,avg(score) from result group by name having sum(score<60) >=2;
2.select name ,count((score<60)!=0) as a,avg(score) from result group by name having a >=2;
兩種查詢的結果確定是不同的,確定是第一種正確的,緣由是爲何,這時你就要想了,count()函數的意義和sum函數的意義函數
Sum()函數裏面的參數是列名的時候,是計算列名的值的相加,而不是有值項的總數。 spa