国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql中的count()與sum()區別詳細介紹

2024-07-24 12:49:05
字體:
來源:轉載
供稿:網友
首先創建個表說明問題
復制代碼 代碼如下:

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)的情況。即使是這樣使用,可能其初衷也是想統計行數。只是不知道!這樣所造成的細微差異而錯誤使用了"列名"的形式。

您可能感興趣的文章:

MYSQL中統計查詢結果總行數的便捷方法省去count(*)mySQL count多個表的數據實例詳解關于mysql innodb count(*)速度慢的解決辦法MySQL中distinct和count(*)的使用方法比較詳細解讀MySQL中COUNT函數的用法mysql_num_rows VS COUNT 效率問題分析關于mysql中innodb的count優化問題分享淺析一個MYSQL語法(在查詢中使用count)的兼容性問題mysql中count(), group by, order by使用詳解MySQL中count(*)、count(1)和count(col)的區別匯總
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰城市| 河间市| 平阳县| 慈溪市| 长泰县| 威海市| 大庆市| 兴业县| 射阳县| 南昌县| 鄂托克前旗| 涿鹿县| 林州市| 新营市| 桐柏县| 洛阳市| 江阴市| 福贡县| 安吉县| 启东市| 舞钢市| 盐城市| 平定县| 罗甸县| 平武县| 清镇市| 沈丘县| 永丰县| 西乌珠穆沁旗| 合江县| 连州市| 汶川县| 沅江市| 壶关县| 阳春市| 台南市| 霸州市| 甘德县| 图木舒克市| 永兴县| 松江区|