SQL语句中sql的count语句和sql的count语句的区别

sql count(*) count(1)区别
sql count(*) count(1)区别
效果:两者的返回结果是一样的。 & &
意义:当count的参数是具体值时(如count(1),count('a')),
count的参数已没有实际意义了。
范围:在统计范围,count(*)和count(1) 一样,都包括对NULL的统计;
& & & & & &count(column) 是不包括NULL的统计。
速度:表沒有主键(Primary key),count(1)比count(*)快;
& & & & & &否则,主键作为count的参数时,count(主键)比count(1)和count(*)都快;
& & & & & &表只有一个字段,count(*),count(1)和count(主键)速度一样。SQL COUNT() 函数
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& 表:
OrderPrice
现在,我们希望计算客户 &Carter& 的订单数。
我们使用如下 SQL 语句:
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Carter'
以上 SQL 语句的结果是 2,因为客户 Carter 共有 2 个订单:
CustomerNilsen
SQL COUNT(*) 实例
如果我们省略 WHERE 子句,比如这样:
SELECT COUNT(*) AS NumberOfOrders FROM Orders
结果集类似这样:
NumberOfOrders
这是表中的总行数。
SQL COUNT(DISTINCT column_name) 实例
现在,我们希望计算 &Orders& 表中不同客户的数目。
我们使用如下 SQL 语句:
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders
结果集类似这样:
NumberOfCustomers
这是 &Orders& 表中不同客户(Bush, Carter 和 Adams)的数目。sql中count或sum为条件的查询示例(sql查询count)
字体:[ ] 类型:转载 时间:
在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询,下面使用一个示例说明使用方法
比如user_num表:
例1:查询出现过2次的user
往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制。错误做法:select * from user_num where count(user)&=2正确做法:select * from user_num group by user HAVING count(user)&=2 ;解释说明:HAVING 与 WHERE 类似,可用来决定选择哪些记录。HAVING 子句在SELECT语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句分组的任何符合 HAVING 子句的记录。例2:查询单一用户的num总和大于10的用户
有前面的经验,把sum()方法写在HAVING子句中。正确做法:select * from user_num group by user HAVING sum(num)&10 ;注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用AND和OR分割。
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具SQL&中的TOP&用户与count用法
在MySQL中,可以用
Limit 来查询第 m 列到第 n 列的记录,例如:
select * from tablename limit m, n
但是,在SQL Server中,不支持 Limit 语句。怎么办呢?
解决方案:
虽然SQL Server不支持 Limit ,但是它支持 TOP。
我们以SQL Server 2005为例,就以它自带的示范数据库 AdventureWorks 作为测试数据:
select AddressId, City, StateProvinceId, PostalCode
from Person.[Address]
where StateProvinceId = 58
order by AddressId
如果要查询上述结果中前6条记录,则相应的SQL语句是:
select top 6 AddressId, City, StateProvinceId,
PostalCode
from Person.[Address]
where StateProvinceId = 58
order by AddressId
如果要查询上述结果中第 7 条到第 9 条记录,则相应的SQL语句是:
select top 3 AddressId, City, StateProvinceId,
PostalCode
from Person.[Address]
where StateProvinceId = 58
and AddressId not in (
& select top 6 AddressId from
Person.[Address] where StateProvinceId = 58 order by
order by AddressId
用于统计有多少行select count(*) from [article]
where id=4; 使用了count函数
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 sql语句 count 加条件 的文章

 

随机推荐