程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql中的count()與sum()區別

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   www.2cto.com   插入一些數據,   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;   www.2cto.com   兩種查詢的結果肯定是不一樣的,肯定是第一種正確的,原因是為什麼,這時你就要想了,count()函數的意義和sum函數的意義   count()函數裡面的參數是列名的的時候,那麼會計算有值項的次數。   Sum()函數裡面的參數是列名的時候,是計算列名的值的相加,而不是有值項的總數。   對count()行數還要注意:它會計算總行數。不管你是否有值都會列入計算范圍。另外一點:mysqlisam引擎很容易獲得總行數的統計。查詢速度變得更快 歸納:實際編程中統計總行數是經常用到的。此時使用count(*)多處可見。我很少看到有人使用列名作為參數:count(a)的情況。即使是這樣使用,可能其初衷也是想統計行數。只是不知道!這樣所造成的細微差異而錯誤使用了"列名"的形式。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved