MySQL-分组查询及分组函数

  • 格式:docx
  • 大小:26.59 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mysql与oracle中分组、聚合函数的区别!

今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。

where c.media_code = m.media_code

group by c.media_code,m.media_name

*/

--通过:

selectcount(c.channel_name),m.media_name

from channel c,media m

where c.media_code = m.media_code

groupby m.media_name

--正常

select count(c.channel_name),m.media_name

from channel c,media m

where c.media_code = m.media_code

group by c.media_code,m.media_name

--正常

select count(c.channel_code),m.media_name

from channel c,media m

where c.media_code = m.media_code

group by c.media_code,m.media_name

总结如下:

注:oracle常用分组函数:

COUNT、AVE、SUM、MAX、MIN

Count(*):返回表中所有的行包括空行和重复的行。

COUNT(表达式)返回表中所欲哦表达式为空的行。例如:select count(mgr) from emp; 返回表中所有mgr 为非空的行。

Max、min可用于:数字型数据、字符型数据和日期型数据。

!!!!除了Count(*)外,其他的分组函数都不处理空值(NULL)

比如Max求出的“最大值”就不是null,尽管select的结果(按照从小到大到达顺序)null排在最后的位置。

如果在一个查询中使用了分组函数,任何不在分组函数的列或表达式必须在GROUP BY子句中。

网友总结:

select ……group by的时候,前面的select的字段,要么是group by的依据,要么是聚合内容。

我理解下:

Select中的字段,只能包含在聚合函数中(e.g:min(price)),或是包含在group by子句中,