Mysql中的count()與sum()差別具體引見。本站提示廣大學習愛好者:(Mysql中的count()與sum()差別具體引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql中的count()與sum()差別具體引見正文
起首創立個表解釋成績
CREATE TABLE `result` (
`name` varchar(20) default NULL,
`subject` varchar(20) default NULL,
`score` tinyint(4) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
拔出一些數據,
insert into result values
('張三','數學',90),
('張三','語文',50),
('張三','地輿',40),
('李四','語文',55),
('李四','政治',45),
('王五','政治',30),
('趙六','語文',100),
('趙六','數學',99),
('趙六','品格',98);
請求:查詢出2門及2門以上不合格者的均勻成就。
常常會用兩種查詢語句有兩種:
select name,sum(score < 60) ,avg(score) from result group by name having sum(score<60) >=2;
select name ,count((score<60)!=0) as a,avg(score) from result group by name having a >=2;
兩種查詢的成果確定是紛歧樣的,確定是第一種准確的,緣由是為何,這時候你就要想了,count()函數的意義和sum函數的意義
count()函數外面的參數是列名的的時刻,那末管帳算有值項的次數。
Sum()函數外面的參數是列名的時刻,是盤算列名的值的相加,而不是有值項的總數。
對count()行數還要留意:它管帳算總行數。不論你能否有值都邑列入盤算規模。別的一點:mysqlisam引擎很輕易取得總行數的統計。查詢速度變得更快
歸結:現實編程中統計總行數是常常用到的。此時應用count(*)多處可見。我很少看到有人應用列名作為參數:count(a)的情形。即便是如許應用,能夠其初志也是想統計行數。只是不曉得!如許所形成的纖細差別而毛病應用了"列名"的情勢。