‘壹’ sql语句count怎么使用
过多繁琐的sql影响代码质量,及维护成本,以下为两种小技巧处理方式,仅供参考。
‘贰’ SQL 查询使用COUNT函数一个方法
select 字段a,
count(case when (条件) then 表1.字段b end) as c
from 表1 inner join 表2 on 表1.字段=表2.字段
可以用case加条件。
‘叁’ 关于SQL中count的用法
用sum更好点,如
(一)
select
a.单位名称,sum(case
when
b.时间>='2007-04-01'
and
b.时间<'2007-07-01'
then
1
else
0
end)
as
[2007二季度],sum(case
when
b.时间>='2007-10-01'
and
b.时间<'2008-01-01'
then
1
else
0
end)
as
[2007四季度]
from
表一
a
left
join
表二
b
on
a.单位名称=b.单位名称
group
by
a.单位名称
(二)
select
a.单位名称,sum(case
when
b.时间>='2007-04-01'
and
b.时间<'2007-07-01'
and
b.类别='e'
then
1
else
0
end)
as
[2007二季度],sum(case
when
b.时间>='2007-10-01'
and
b.时间<'2008-01-01'
and
b.类别='e'
then
1
else
0
end)
as
[2007四季度]
from
表一
a
left
join
表二
b
on
a.单位名称=b.单位名称
group
by
a.单位名称
‘肆’ SQL语句中count和count的区别
SQL语句中count和count没有区别。表示返回匹配指定条件的行数。
SQL COUNT() 语法:
1、SQL COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入),如:SELECT COUNT(column_name) FROM table_name。
2、SQL COUNT(*) 函数返回表中的记录数,如:SELECT COUNT(*) FROM table_name。
3、SQL COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目,如:SELECT COUNT(DISTINCT column_name) FROM table_name。
(4)countsql扩展阅读:
COUNT和 DISTINCT 经常被合起来使用,目的是找出表格中有多少笔不同的数据 (至于这些数据实际上是什么并不重要)。COUNT(DISTINCT column_name) 语法适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。
COUNT(column_name)语法返回的数目是检索表中的这个字段的非空行数,不统计这个字段值为null的记录。而COUNT(*)语法返回的数目是包括为null的记录。
‘伍’ sql 语句中count函数怎么用
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) 实例
下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:
实例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;
SQL COUNT(*) 实例
下面的 SQL 语句计算 "access_log" 表中总记录数:
实例
SELECT COUNT(*) AS nums FROM access_log;
执行以上 SQL 输出结果如下:
‘陆’ sql语句中count的用法
a列有多少元素?你的意思应该是a列有多少个不同的元素吧?null算吗?如果null不算,那么count(distinct a)就可以。如果null算,那么就要先看看有没有null有的话就+1,具体的做法各个数据库写法上也会有所区别,这个就不写了。
如果要比较三张表,那么就需要交并补,那么就需要用到union等语句关联的写法,各个数据库也并不完全一致,根据数据库选择。
如元素要列出来,那么直接distinct a 这样就直接列出来了。
如果要知道每个元素的出现的次数,那么就需要分组count了,a count(a)group by a
‘柒’ SQL的COUNT语句
SQL中的count()语句是计算行数的语句,但根据括号内的内容不同,略有区别。
1、创建测试表、插入数据:
createtabletest
(idint,
namevarchar(10),
name1varchar(10));
insertintotestvalues(1,'a','b')
insertintotestvalues(2,'c','d')
insertintotestvalues(3,'e',null)
2、做不同的测试(主要是针对字段中含有null的情况)。
(a)测试语句
selectcount(*)fromtest;--不区分字段,针对全表
结果:
(b)测试语句:
selectcount(id)fromtest;--针对一列不含空值的字段
结果:
(c)测试语句:
selectcount(name1)fromtest;
结果:
结论:对count中为*或者列中不含空值的字段,结果就是所有的行数,如果某一列含空值,结果就是去除了空行的部分的行数。
‘捌’ sql中的count是什么意思呢,求例子
COUNT是统计满足条件的数量,例如下面的语句查询总的记录数:
SELECT COUNT(*) FROM tab;
例如下面的语句显示男性的记录数:
SELECT COUNT(*) FROM tab WHERE sex='男';
再如下面的语句同时显示男性和女性的记录数:
SELECT sex,COUNT(*) FROM tab GROUP BY sex;
‘玖’ SQL count(*)是什么意思
返回组中的项数。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)