統計方法:1、用“COUNT(*)”統計全部查詢結果,語法“SELECT COUNT(*) FROM 表名;”。2、用“COUNT(字段名)”統計非NULL的結果,語法“SELECT COUNT(列名)” FROM 表名;”。3、用“COUNT(DISTINCT 字段名)”統計去重的非NULL結果,語法“SELECT COUNT(DISTINCT 列名)” FROM 表名;”。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
在mysql中,可以使用COUNT()函數來統計查詢結果。
MySQL COUNT()函數
COUNT()函數統計數據表中包含的記錄行的總數,或者根據查詢結果返回列中包含的數據行數
COUNT()函數的返回類型為BIGINT。 如果沒有找到匹配的行,則COUNT()函數返回0。
COUNT()函數有三種語法:
COUNT(*) COUNT(字段名) COUNT(DISTINCT?字段名)
COUNT(*)
COUNT(*)函數返回由SELECT語句返回的結果集中的行數。COUNT(*)函數計算包含NULL和非NULL值的行,即:所有行。
如果使用COUNT(*)函數對表中的數字行進行計數,而不使用WHERE子句選擇其他列,則其執行速度非常快。
這種優化僅適用于MyISAM表,因為MyISAM表的行數存儲在information_schema數據庫的tables表的table_rows列中; 因此,MySQL可以很快地檢索它。
COUNT(列名)
COUNT(字段名)返回不包含NULL值的行數。
COUNT(DISTINCT 列名)
COUNT(DISTINCT?字段名)返回不包含NULL值的唯一行數。
-
DISTINCT運算符允許計算結果中的不同值,即去重。
MySQL COUNT示例
-
創建一個名為demo的新表,并插入一些示例數據
--?create?a?demos?table CREATE?TABLE?IF?NOT?EXISTS?demos( ?id?int?auto_increment?primary?key, ?val?int? );
--?insert?some?sample?data INSERT?INTO?demos(val) VALUES(1),(1),(2),(2),(NULL),(3),(4),(NULL),(5);
--?select?data?from?demos?table SELECT?*?FROM?demos;
-
計算demos表中的所有行,請使用COUNT(*)函數
SELECT?COUNT(*)?FROM?demos;
可以添加一個WHERE子句來指定一個條件來計數,例如,只計算val列包含值等于2的行,使用以下查詢:
SELECT?COUNT(*)?FROM?demos?WHERE?val?=?2;
val列中的兩個NULL值將被忽略。
-
要計算demos表中的唯一行,可以將DISTINCT運算符添加到COUNT函數中,如下查詢語句:
SELECT?COUNT(DISTINCT?val)?FROM?demos;
在計數中忽略兩個重復值1、2和兩個NULL值。
【相關推薦:mysql視頻教程】