COUNT() 是最常用的聚合函數,用於統計符合條件的行數。本文通過實例講解其各種用法與注意事項。
同 employee_tbl 表,共 7 行記錄。
mysql> SELECT COUNT(*) FROM employee_tbl; +----------+ | COUNT(*) | +----------+ | 7 | +----------+
COUNT(*) 包含 NULL 值行,不忽略任何行。
mysql> SELECT COUNT(*) FROM employee_tbl WHERE name = 'Zara'; +----------+ | COUNT(*) | +----------+ | 2 | +----------+
COUNT(*):統計行數,忽略 NULL 無關。COUNT(column):統計該列非 NULL的值的個數。COUNT(DISTINCT column):統計該列去重後非 NULL的值的個數。SELECT
COUNT(*) AS total_rows,
COUNT(daily_typing_pages) AS non_null_pages,
COUNT(DISTINCT name) AS unique_names
FROM employee_tbl;
MySQL 默認字符集校對規則不區分大小寫,WHERE name='Zara'、'zara'、'ZARA' 效果相同。
WHERE 時 COUNT(*) 極快(直接讀取表元數據)。COUNT(column) 當不需要過濾 NULL 時,COUNT(*) 更明確且優化器友好。