《Mysql學(xué)習(xí)Mysql中的count()與sum()區(qū)別詳細(xì)介紹》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)Mysql中的count()與sum()區(qū)別詳細(xì)介紹,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
首先創(chuàng)建個(gè)表說(shuō)明問(wèn)題
代碼如下:
CREATE TABLE `result` (
`name` varchar(20) default NULL,
`subject` varchar(20) default NULL,
`score` tinyint(4) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
插入一些數(shù)據(jù),
代碼如下:
insert into result values
('張三','數(shù)學(xué)',90),
('張三','語(yǔ)文',50),
('張三','地理',40),
('李四','語(yǔ)文',55),
('李四','政治',45),
('王五','政治',30),
('趙六','語(yǔ)文',100),
('趙六','數(shù)學(xué)',99),
('趙六','品德',98);
要求:查詢出2門及2門以上不及格者的平均成績(jī).
經(jīng)常會(huì)用兩種查詢語(yǔ)句有兩種:
代碼如下:
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;
兩種查詢的結(jié)果肯定是紛歧樣的,肯定是第一種正確的,原因是為什么,這時(shí)你就要想了,count()函數(shù)的意義和sum函數(shù)的意義
count()函數(shù)里面的參數(shù)是列名的的時(shí)候,那么會(huì)計(jì)算有值項(xiàng)的次數(shù).
Sum()函數(shù)里面的參數(shù)是列名的時(shí)候,是計(jì)算列名的值的相加,而不是有值項(xiàng)的總數(shù).
對(duì)count()行數(shù)還要注意:它會(huì)計(jì)算總行數(shù).不管你是否有值都會(huì)列入計(jì)算范圍.另外一點(diǎn):mysqlisam引擎很容易獲得總行數(shù)的統(tǒng)計(jì).查詢速度變得更快
歸納:實(shí)際編程中統(tǒng)計(jì)總行數(shù)是經(jīng)常用到的.此時(shí)使用count(*)多處可見(jiàn).我很少看到有人使用列名作為參數(shù):count(a)的情況.即使是這樣使用,可能其初衷也是想統(tǒng)計(jì)行數(shù).只是不知道!這樣所造成的細(xì)微差異而錯(cuò)誤使用了"列名"的形式.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql學(xué)習(xí)Mysql中的count()與sum()區(qū)別詳細(xì)介紹》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12352.html