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

首頁 > 數據庫 > MySQL > 正文

Mysql下count()和sum()區別

2024-07-24 12:38:36
字體:
來源:轉載
供稿:網友

在mysql中有兩個函數count()與sum()函數,有很多朋友搞不清楚,從英文的角度我們可以分析出來count是統計個數,sum是求各并且只能是數值型.

要求:查詢出2門及2門以上不及格者的平均成績。

經常會用兩種查詢語句有兩種:

select name,sum(score < 60) ,avg(score)  from result  group by name having sum(score<60) >=2;

再看,算你擁有動物的總數目與“在pet表中有多少行?”是同樣的問題,因為每個寵物有一個記錄。COUNT(*)函數計算行數,所以計算動物數目的查詢應為:

  1. mysql> SELECT COUNT(*) FROM pet; 
  2. +----------+ 
  3. COUNT(*) | 
  4. +----------+ 
  5. |        9 | 
  6. +----------+ 

在前面,你檢索了擁有寵物的人的名字,如果你想要知道每個主人有多少寵物,你可以使用COUNT( )函數,代碼如下:

  1. mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner; 
  2. +--------+----------+ 
  3. | owner  | COUNT(*) | 
  4. +--------+----------+ 
  5. | Benny  |        2 | 
  6. | Diane  |        2 | 
  7. | Gwen   |        3 | 
  8. | Harold |        2 | 
  9. +--------+----------+ 

注意,使用GROUP BY對每個owner的所有記錄分組,沒有它,你會得到錯誤消息,代碼如下 :

mysql> SELECT owner, COUNT(*) FROM pet;

ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

COUNT( )和GROUP BY以各種方式分類你的數據,下列例子顯示出進行動物普查操作的不同方式.

每種動物的數量,代碼如下:

  1. mysql> SELECT species, COUNT(*) FROM pet GROUP BY species; 
  2. +---------+----------+ 
  3. | species | COUNT(*) | 
  4. +---------+----------+ 
  5. | bird    |        2 | 
  6. | cat     |        2 | 
  7. | dog     |        3 | 
  8. | hamster |        1 | 
  9. | snake   |        1 | 
  10. +---------+----------+ 

每種性別的動物數量,代碼如下:

  1. mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex; 
  2. +------+----------+  --Vevb.com 
  3. | sex  | COUNT(*) | 
  4. +------+----------+ 
  5. NULL |        1 | 
  6. | f    |        4 | 
  7. | m    |        4 | 
  8. +------+----------+ 

在這個輸 出中,NULL表示“未知性別”.

按種類和性別組合的動物數量,代碼如下:

  1. mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex; 
  2. +---------+------+----------+ 
  3. | species | sex  | COUNT(*) | 
  4. +---------+------+----------+ 
  5. | bird    | NULL |        1 | 
  6. | bird    | f    |        1 | 
  7. | cat     | f    |        1 | 
  8. | cat     | m    |        1 | 
  9. | dog     | f    |        1 | 
  10. | dog     | m    |        2 | 
  11. | hamster | f    |        1 | 
  12. | snake   | m    |        1 | 
  13. +---------+------+----------+ 

若使用COUNT( ),你不必檢索整個表,例如,前面的查詢,當只對狗和貓進行時,應為:

  1. mysql> SELECT species, sex, COUNT(*) FROM pet 
  2.     -> WHERE species = 'dog' OR species = 'cat' 
  3.     -> GROUP BY species, sex; 
  4. +---------+------+----------+ 
  5. | species | sex  | COUNT(*) | 
  6. +---------+------+----------+ 
  7. | cat     | f    |        1 | 
  8. | cat     | m    |        1 | 
  9. | dog     | f    |        1 | 
  10. | dog     | m    |        2 | 
  11. +---------+------+----------+ 

或如果你僅需要知道已知性別的按性別的動物數目,代碼如下:

  1. mysql> SELECT species, sex, COUNT(*) FROM pet 
  2.     -> WHERE sex IS NOT NULL 
  3.     -> GROUP BY species, sex; 
  4. +---------+------+----------+ 
  5. | species | sex  | COUNT(*) | 
  6. +---------+------+----------+ 
  7. | bird    | f    |        1 | 
  8. | cat     | f    |        1 |  --Vevb.com 
  9. | cat     | m    |        1 | 
  10. | dog     | f    |        1 | 
  11. | dog     | m    |        2 | 
  12. | hamster | f    |        1 | 
  13. | snake   | m    |        1 | 
  14. +---------+------+----------+ 

mysql sum,代碼如下:

select name,count((score<60)!=0) as a,avg(score) from result group by name having a >=2;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜宾市| 扬州市| 凤山县| 盐城市| 迁西县| 台中市| 永定县| 景德镇市| 通道| 黄石市| 宁强县| 西充县| 阿坝县| 安阳市| 沛县| 琼中| 射洪县| 丰城市| 崇信县| 泗洪县| 五家渠市| 永吉县| 岳西县| 马山县| 久治县| 仲巴县| 长治县| 闻喜县| 云和县| 连城县| 航空| 博乐市| 湛江市| 许昌市| 叙永县| 宣化县| 安丘市| 宁津县| 龙海市| 西青区| 临沧市|