聚合函数

count

count用于返回内容(行)的个数

  • COUNT(*) 能对整张表的内容(行)进行计数,不管内容(行)是有值还是空值


  • COUNT(1) 能对整张表的内容(行)进行计数,不管内容(行)是有值还是空值
  • COUNT(字段) 能对某一字段的内容(行)进行计数,但是会忽略 NULL 值。
表table
select count(*) from table
count(*)
select count(1) from table
count(1)
select count(ID) from table
count(ID)

区别

  • 如果列为主键,count(列名)效率优于count(1)
  • 如果列不为主键,count(1)效率优于count(列名)
  • 如果表中存在主键,count(主键列名)效率最优
  • 如果表中只有一列,则count(*)效率最优
  • 如果表有多列,且不存在主键,则count(1)效率优于count(*)

count(1),其实就是计算一共有多少符合条件的行,1并不是表示第一个字段,而是表示一个固定值,这个字段就是固定值1,count(1),就是计算一共有多少个1。
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

AVG

AVG() 函数通过计算某字段(列)内容(行)的个数和它们的数值之和来返回某一字段的平均值。

MAX

MAX() 函数能够返回某一字段(列)的最大值。值得注意的是,要想使用 MAX() 函数,就一定需要有特定的字段(列)与之配对,不能偷懒用通配符 * 作参数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容