sql学习笔记(7)-----------sql函数(2)

SQL COUNT DISTINCT 函数

 

定义和用法

可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目。

语法

SELECT COUNT(DISTINCT column(s)) FROM table

例子

注意:下面的例子仅适用于 ORACLE 和 Microsoft SQL server,不能用于 Microsoft Access。

"Orders"表:

Company OrderNumber
IBM 3532
W3School 2356
Apple 4698
W3School 6953

例子 1

SELECT COUNT(Company) FROM Orders

结果:

4

例子 2

SELECT COUNT(DISTINCT Company) FROM Orders

结果:

3

 

 

 

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)的数目。

 

 

 

SQL COUNT(*) 函数

 

定义和用法

COUNT(*) 函数返回在给定的选择中被选的行数。

语法

SELECT COUNT(*) FROM table

例子

Name Age
Adams, John 38
Bush, George 33
Carter, Thomas 18

例子 1

本例返回 "Persons" 表中的行数:

SELECT COUNT(*) FROM Persons

结果:

3

例子 2

返回大于 20 岁的人数:

SELECT COUNT(*) FROM Persons WHERE Age>20

结果:

2

 

 

 

你可能感兴趣的:(sql学习笔记(7)-----------sql函数(2))