Mysql入门系列:MySQL教程(2)
2006-12-31 10:48:41 来源:WEB开发网核心提示: COUNT(*) 对选中的行进行计数,而COUNT(col_name) 只对非NULL 值进行计数,Mysql入门系列:MySQL教程(2)(9),下面的查询说明了这些差异:这表示,总共有41位总统,有些事是可以简化的,所幸MySQL可以利用单个查询对一个列中不同的值进行计数,他们中只有一
COUNT(*) 对选中的行进行计数。而COUNT(col_name) 只对非NULL 值进行计数。下面的查询说明了这些差异:
这表示,总共有41位总统,他们中只有一个具有名字后缀,并且大多数总统都已去世。自MySQL3.23.2 以来,可以将COUNT( ) 与DISTINCT 组合对选择结果集中不同的值进行计数。例如,为了对总统出生的不同州进行计数,可执行下列查询:
可以根据汇总列中单独的值对计数值进行分解。例如,您可能根据下列的查询结果知道班级中所有学生的人数:
但是,有多少是男孩?有多少是女孩?分别得出男孩、女孩的一种方法是分别对每种性别进行计数:
虽然这个方法可行,但是它很繁锁而且并不真正适合于可能有许多不同的值的列。考虑一下怎样以这种方式确定每个州出生的总统人数。您不得不找出有哪些州,从而不能省略(SELECT DISTINCT state FROM president),然后对每个州执行一个SELECT COUNT(*) 查询。很显然,有些事是可以简化的。所幸MySQL可以利用单个查询对一个列中不同的值进行计数。因此,针对学生表可以按如下得出男孩和女孩的人数:
更多精彩
赞助商链接