加班加的累了 给你解决一下假设 你的数据库 有一个sex 字段表示‘男’或者‘女’, 表为 tabselect (case sex when '男' then select count(1) from tab end) 男生总数,(case sex when '女' then select count(1) from tab end) 女生总数from tab
a列有多少元素?你的意思应该是a列有多少个不同的元素吧?null算吗?如果null不算,那么count(distinct a)就可以。如果null算,那么就要先看看有没有null有的话就+1,具体的做法各个数据库写法上也会有所区别,这个就不写了。
如果要比较三张表,那么就需要交并补,那么就需要用到union等语句关联的写法,各个数据库也并不完全一致,根据数据库选择。
如元素要列出来,那么直接distinct a 这样就直接列出来了。
如果要知道每个元素的出现的次数,那么就需要分组count了,a count(a)group by a
COUNT()
函数返回匹配指定条件的行数
COUNT(column_name)
函数返回指定列的值的数目(NULL
不计入)
我们拥有下列
"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
返回组中的项数。COUNT与COUNT_BIG函数类似。两个函数唯一的差别是它们的返回值。COUNT始终返回int数据类型值。COUNT_BIG始终返回bigint数据类型值。
Transact-SQL语法约定
语法
COUNT({[[ALL|DISTINCT]expression]|})
备注
COUNT()返回组中的项数。包括NULL值和重复项。
COUNT(ALLexpression)对组中的每一行都计算expression并返回非空值的数量。
COUNT(DISTINCTexpression)对组中的每一行都计算expression并返回唯一非空值的数量。
对于大于2^31-1的返回值,COUNT生成一个错误。这时应使用COUNT_BIG。
参数
ALL
对所有的值进行聚合函数运算。ALL是默认值。
DISTINCT
指定COUNT返回唯一非空值的数量。
expression
除text、image或ntext以外任何类型的表达式。不允许使用聚合函数和子查询。
指定应该计算所有行以返回表中行的总数。COUNT()不需要任何参数,而且不能与DISTINCT一起使用。COUNT()不需要expression参数,因为根据定义,该函数不使用有关任何特定列的信息。COUNT()返回指定表中行数而不删除副本。它对各行分别计数。包括包含空值的行。
重要事项:
使用CUBE或ROLLUP时,不支持区分聚合,如AVG(DISTINCTcolumn_name)、COUNT(DISTINCTcolumn_name)、MAX(DISTINCTcolumn_name)、MIN(DISTINCTcolumn_name)和SUM(DISTINCTcolumn_name)。如果使用这些聚合,MicrosoftSQLServer2005DatabaseEngine将返回一条错误消息并取消查询。
返回类型
int
示例
A使用COUNT和DISTINCT
以下示例列出了在AdventureWorksCycles工作的雇员可以拥有的不同标题的数量。
复制代码
USE;
GO
SELECTCOUNT(DISTINCTTitle)
FROMEmployee;
GO
下面是结果集:
复制代码
-----------
67
(1row(s)affected)
B使用COUNT()
以下示例计算AdventureWorksCycles的雇员总数。
复制代码
USE;
GO
SELECTCOUNT()
FROMEmployee;
GO
下面是结果集:
复制代码
-----------
290
(1row(s)affected)
C组合使用COUNT()和其他聚合函数
以下示例显示可以组合使用COUNT()和选择列表中的其他聚合函数。
复制代码
USE;
GO
SELECTCOUNT(),AVG(Bonus)
FROMSalesSalesPerson
WHERESalesQuota
GO
下面是结果集:
复制代码
--------------------------------
1434721428
(1row(s)affected)
以上就是关于在一个数据库学生表中,要分别统计男女生人数,用count()函数怎么实现啊全部的内容,包括:在一个数据库学生表中,要分别统计男女生人数,用count()函数怎么实现啊、sql语句中count的用法、mysql中count的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)