Welcome 微信登录

首页 / 数据库 / MySQL / MySQL与Oracle中分组、聚合函数的区别

今天需要这样一句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.pidfrom room r,user1 uwhere 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 Oracle 10g学习之闪回数据库Oracle Streams存储过程中的一些参数相关资讯      mysql  oracle 
  • [INS-32052] Oracle基目录和Oracle  (07/22/2014 07:41:41)
  • [Oracle] dbms_metadata.get_ddl的  (07/12/2013 07:37:30)
  • MySQL 5.6 GA 及逃亡潮  (02/08/2013 14:36:35)
  • 数据库服务器 MySQL  (08/15/2013 06:50:23)
  • MySQL Administrator连接VMWare下  (05/24/2013 09:20:58)
  • MySQL 5.1.68 发布  (02/05/2013 08:37:47)
本文评论 查看全部评论 (0)
表情: 姓名: 字数