count
count用于返回內(nèi)容(行)的個數(shù)
-
COUNT(*) 能對整張表的內(nèi)容(行)進行計數(shù)啊胶,不管內(nèi)容(行)是有值還是空值
- COUNT(1) 能對整張表的內(nèi)容(行)進行計數(shù)顷编,不管內(nèi)容(行)是有值還是空值
- COUNT(字段) 能對某一字段的內(nèi)容(行)進行計數(shù)屿岂,但是會忽略 NULL 值兽间。
表table
select count(*) from table
count(*)
select count(1) from table
count(1)
select count(ID) from table
count(ID)
區(qū)別
- 如果列為主鍵,count(列名)效率優(yōu)于count(1)
- 如果列不為主鍵玉掸,count(1)效率優(yōu)于count(列名)
- 如果表中存在主鍵伴挚,count(主鍵列名)效率最優(yōu)
- 如果表中只有一列,則count(*)效率最優(yōu)
- 如果表有多列沦辙,且不存在主鍵夫植,則count(1)效率優(yōu)于count(*)
count(1),其實就是計算一共有多少符合條件的行油讯,1并不是表示第一個字段详民,而是表示一個固定值,這個字段就是固定值1撞羽,count(1)阐斜,就是計算一共有多少個1。
count(*)诀紊,執(zhí)行時會把星號翻譯成字段的具體名字谒出,效果也是一樣的,不過多了一個翻譯的動作邻奠,比固定值的方式效率稍微低一些笤喳。
AVG
AVG() 函數(shù)通過計算某字段(列)內(nèi)容(行)的個數(shù)和它們的數(shù)值之和來返回某一字段的平均值。
MAX
MAX() 函數(shù)能夠返回某一字段(列)的最大值碌宴。值得注意的是杀狡,要想使用 MAX() 函數(shù),就一定需要有特定的字段(列)與之配對贰镣,不能偷懶用通配符 * 作參數(shù)呜象。