《Mysql學習Mysql中的count()與sum()區別詳細介紹》要點:
本文介紹了Mysql學習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)的情況.即使是這樣使用,可能其初衷也是想統計行數.只是不知道!這樣所造成的細微差異而錯誤使用了"列名"的形式.
維易PHP培訓學院每天發布《Mysql學習Mysql中的count()與sum()區別詳細介紹》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/12352.html