COUNT() 函数返回匹配指定条件的行数。
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):不包含值为NULL的记录
COUNT(*) 函数返回表中的记录数:
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目
SUM()函数,是针对表tab中,任意符合可加减的字段,进行加和。 select COUNT(CARRIER_NAME),sum(STEP_STATUS) from ACC_eLogistics..CARRIER_INFO 这个就可以求出来,这个CARRIER_NAME,一共有多少条记录,在这记录中STEP_STATUS的和一共是多少 (无列名) (无列名) 354 595
大多数在使用count的时候,是搭配group by 一起来使用的,
因为,count只是返回给你数量,要是仅仅是返回select count(*)/count(字段) 就可以执行成功的。
但是要是这样select:
select count(*) ,OrderSn from tabA,那你就是想知道OrderSn在TabA中有多少条记录,
但是OrderSn可能是一或者多个吧,为了区分开每一个OrderSn到底有多少个,那就是用Group by 进行区分
select COUNT(CONTACT_INFO) as CONTACT,ENABLED from CARRIER group by ENABLED
CONTACT ENABLED
178 0
74 1
这样就可以看出来,在CARRIER这个表中,ENABLED有两种情况,数量分别是178/74,这就是日常count和Group by 搭配的原因,指明具体的字段的不同值之间的数量
----------------------------------------------------------------------------------------------------------------------------------------
count(*) 和 count(1)和count(列名)区别
做了下select ,是统计有多少条记录:
select count(1) from A
select count(*) from A
select count(CreateTime) from A
返回的都是A表中有多少条记录。
2. count(1) and count(字段)
两者的主要区别是
(1) count(1) 会统计表中的所有的记录数,包含字段为null 的记录。
(2) count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。
转自:http://www.cnblogs.com/Dhouse/p/6734837.html
执行效率上:
列名为主键,count(列名)会比count(1)快
列名不为主键,count(1)会比count(列名)快
如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)
如果有主键,则 select count(主键)的执行效率是最优的
如果表只有一个字段,则 select count(*)最优。
转自:http://eeeewwwqq.iteye.com/blog/1972576
=======================================================================================================