SQL COUNT() 函数


COUNT() 函数返回匹配指定条件的行数。


SQL COUNT(column_name) 语法

COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name;

SQL COUNT(*) 语法

COUNT(*) 函数返回表中的记录数:

SELECT COUNT(*) FROM table_name;

SQL COUNT(DISTINCT column_name) 语法

COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name;

注释: COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。


演示数据库

在本教程中,我们将使用 yssmx 样本数据库。

下面是选自 "access_log" 表的数据:

									+-----+---------+-------+------------+
| aid_site_id_count_date       |
+-----+---------+-------+------------+
|   1_      1_   45_2016-05-10 |
|   2_      3_  100_2016-05-13 |
|   3_      1_  230_2016-05-14 |
|   4_      2_   10_2016-05-14 |
|   5_      5_  205_2016-05-14 |
|   6_      4_   13_2016-05-15 |
|   7_      3_  220_2016-05-15 |
|   8_      5_  545_2016-05-16 |
|   9_      3_  201_2016-05-17 |
+-----+---------+-------+------------+
								


SQL COUNT(column_name) 实例

下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:

实例

SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;


SQL COUNT(*) 实例

下面的 SQL 语句计算 "access_log" 表中总记录数:

实例

SELECT COUNT(*) AS nums FROM access_log;

执行以上 SQL 输出结果如下:


SQL COUNT(DISTINCT column_name) 实例

下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:

实例

SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;

执行以上 SQL 输出结果如下: