国产探花免费观看_亚洲丰满少妇自慰呻吟_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;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特后旗| 延川县| 林周县| 寿光市| 芦山县| 昆明市| 慈利县| 辽源市| 绵阳市| 武宁县| 监利县| 尉氏县| 潮安县| 社旗县| 建湖县| 克什克腾旗| 铁岭市| 宿迁市| 班戈县| 贵溪市| 尼玛县| 惠水县| 正宁县| 天门市| 九台市| 监利县| 怀化市| 瓮安县| 祥云县| 桃园县| 无极县| 澳门| 五台县| 淮安市| 郧西县| 溧阳市| 涿鹿县| 舒城县| 子长县| 大名县| 柳林县|