首页/数据/SQL 速查/COUNT 计数
本包目录(311 条)
查询基础33 条连接与子查询40 条
聚合与窗口函数54 条
函数速查60 条变更与事务52 条性能与执行计划72 条

COUNT 计数

统计行数或非空值个数:COUNT(*) 统计行数,COUNT(col) 只统计该列非 NULL 的值;无匹配行时返回 0。

SQL 速查数据更新于 2026-10-12
COUNT(*)统计结果行数,包含 NULL 行
COUNT(col)统计该列非 NULL 值个数
空结果返回 0(不是 NULL)

示例

示例
SELECT COUNT(*)          AS total_orders,
       COUNT(coupon_id)  AS with_coupon
FROM orders
WHERE status = 1;

易错点

  • COUNT(col) 会把 NULL 排除,统计“总数”时误用会少算,按语义选 COUNT(*) 或 COUNT(col)
  • InnoDB 的 COUNT(*) 没有现成计数缓存,大表全表计数很慢,见“大表计数”条目

数据来源与参考

  • MySQL 8.0 Reference Manual · COUNT
  • PostgreSQL Documentation · Aggregate Functions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌