sql count函数  _MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2472 | 回复: 1   主题: sql count函数          下一篇 
wlcbhrss
注册用户
等级:新兵
经验:68
发帖:65
精华:0
注册:2011-8-21
状态:离线
发送短消息息给wlcbhrss 加好友    发送短消息息给wlcbhrss 发消息
发表于: IP:您无权察看 2015-6-17 17:59:13 | [全部帖] [楼主帖] 楼主

返回组中的项数。COUNT 与 COUNT_BIG 函数类似。两个函数唯一的差别是它们的返回值。COUNT 始终返回 int 数据类型值。COUNT_BIG 始终返回 bigint 数据类型值。



 Transact-SQL 语法约定



语法

COUNT ( { [ [ ALL   DISTINCT ] expression ]   * } ) 

 



备注

COUNT(*) 返回组中的项数。包括 NULL 值和重复项。



COUNT(ALL expression) 对组中的每一行都计算 expression 并返回非空值的数量。



COUNT(DISTINCT expression) 对组中的每一行都计算 expression 并返回唯一非空值的数量。



对于大于 2^31-1 的返回值,COUNT 生成一个错误。这时应使用 COUNT_BIG。



参数

ALL 



对所有的值进行聚合函数运算。ALL 是默认值。


DISTINCT


指定 COUNT 返回唯一非空值的数量。


expression


除 text、image 或 ntext 以外任何类型的表达式。不允许使用聚合函数和子查询。





指定应该计算所有行以返回表中行的总数。COUNT(*) 不需要任何参数,而且不能与 DISTINCT 一起使用。COUNT(*) 不需要 expression 参数,因为根据定义,该函数不使用有关任何特定列的信息。COUNT(*) 返回指定表中行数而不删除副本。它对各行分别计数。包括包含空值的行。



重要事项:  

使用 CUBE 或 ROLLUP 时,不支持区分聚合,如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用这些聚合,Microsoft SQL Server 2005 Database Engine 将返回一条错误消息并取消查询。

 



返回类型

int



示例

A. 使用 COUNT 和 DISTINCT

以下示例列出了在 Adventure Works Cycles 工作的雇员可以拥有的不同标题的数量。



 复制代码 

USE AdventureWorks;

GO

SELECT COUNT(DISTINCT Title)

FROM HumanResources.Employee;

GO

 



下面是结果集: 



 复制代码 

----------- 

67



(1 row(s) affected)

 



B. 使用 COUNT(*)

以下示例计算 Adventure Works Cycles 的雇员总数。



 复制代码 

USE AdventureWorks;

GO

SELECT COUNT(*)

FROM HumanResources.Employee;

GO

 



下面是结果集: 



 复制代码 

            

----------- 

290



(1 row(s) affected)

 



C. 组合使用 COUNT(*) 和其他聚合函数

以下示例显示可以组合使用 COUNT(*) 和选择列表中的其他聚合函数。



 复制代码 

USE AdventureWorks;

GO

SELECT COUNT(*), AVG(Bonus)

FROM Sales.SalesPerson

WHERE SalesQuota > 25000;

GO

 



下面是结果集: 



 复制代码 

                                 

----------- --------------------- 

14            3472.1428

(1 row(s) affected)



--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
superstar
注册用户
等级:上尉
经验:525
发帖:2
精华:0
注册:2015-6-3
状态:离线
发送短消息息给superstar 加好友    发送短消息息给superstar 发消息
发表于: IP:您无权察看 2015-6-18 9:08:45 | [全部帖] [楼主帖] 2  楼

对于大于 2^31-1 的返回值,COUNT 生成一个错误。这时应使用 COUNT_BIG。北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论