最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL与Oracle中分组、聚合函数的区别

来源:动视网 责编:小采 时间:2020-11-09 12:20:56
文档

MySQL与Oracle中分组、聚合函数的区别

MySQL与Oracle中分组、聚合函数的区别:今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。在MySQL环境中,我 今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。 在MyS
推荐度:
导读MySQL与Oracle中分组、聚合函数的区别:今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。在MySQL环境中,我 今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。 在MyS


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

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

在MySQL环境中,我模拟如下环境:

CREATE TABLE `room` (

`rid` varchar(5) default NULL,

`rname` varchar(5) default NULL,

`pid` int(11) default NULL,

`seq` int(11) NOT NULL auto_increment,

PRIMARY KEY (`seq`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8
房间表,seq房间入住序号(主键),rname为房间名,这里不考虑第三范式

情景:人住房间,

统计某个房间某个人住的次数

用户表,客人的信息

CREATE TABLE `user1` (

`ID` int(11) NOT NULL auto_increment,

`USERNAME` varchar(50) default '',

`PASSWORD` varchar(50) default '',

PRIMARY KEY (`ID`)

) ENGINE=InnoDB DEFAULT CHARSET=gbk

Mysql中语句如下:

select count(u.username),,r.rname,r.rid,r.pid

from room r,user1 u

where r.pid=u.id

group by r.rid,r.pid

这里r.rname并没有出现在group by子句、聚合函数中,但是MYSQL中仍然能够执行、列出数据。

但是,在Oracle中,却不能!!!!

Oracle环境中:

/*

--显示:Ora-00979 not a ORDER BY expression

--因为: order by 后边的c.channel_code不在ORDER BY子句中

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

order by c.channel_code

--显示:Ora-00979 not a GROUP BY expression

--因为:group by 或者聚合函数中没有包含c.channel_name

select count(c.channel_name),m.media_name,c.channel_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_name),m.media_name

from channel c,media m

where c.media_code = m.media_code

group by 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

文档

MySQL与Oracle中分组、聚合函数的区别

MySQL与Oracle中分组、聚合函数的区别:今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。在MySQL环境中,我 今天需要这样一句sql:先用group by进行分组,然后利用聚合函数count 或者sum进行计算,并显示其它的辅助信息。 在MyS
推荐度:
标签: 分组 的区别 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top