赛捷软件论坛's Archiver

vicky.yu 发表于 2019-7-11 10:25

SQL COUNT() 函数

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

SQL 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。

SQL COUNT(column_name) 实例
我们拥有下列 "Orders" 表:

O_Id        OrderDate        OrderPrice        Customer
1        2008/12/29        1000        Bush
2        2008/11/23        1600        Carter
3        2008/10/05        700        Bush
4        2008/09/28        300        Bush
5        2008/08/06        2000        Adams
6        2008/07/21        100        Carter
现在,我们希望计算客户 "Carter" 的订单数。

我们使用如下 SQL 语句:

SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Carter'
以上 SQL 语句的结果是 2,因为客户 Carter 共有 2 个订单:

CustomerNilsen
2
SQL COUNT(*) 实例
如果我们省略 WHERE 子句,比如这样:

SELECT COUNT(*) AS NumberOfOrders FROM Orders
结果集类似这样:

NumberOfOrders
6
这是表中的总行数。

SQL COUNT(DISTINCT column_name) 实例
现在,我们希望计算 "Orders" 表中不同客户的数目。

我们使用如下 SQL 语句:

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders
结果集类似这样:

NumberOfCustomers
3
这是 "Orders" 表中不同客户(Bush, Carter 和 Adams)的数目。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.