oracle里面group by_oracle中order by

oracle里面group by_oracle中order by分组聚合Group by 在mysql中,对group by 的使用限制是比较宽松,还是比较灵活的, 表数据之间的调取是完全没问题的; 而在Oracle中,对group by 就有一定限制,两句相同…

Oracle 中关于 group by 的那些坑

分组聚合Group by

  •  在mysql中,对group by 的使用限制是比较宽松,还是比较灵活的, 表数据之间的调取是完全没问题的;
  • 而在Oracle中,对group by 就有一定限制,两句相同的SQL语句,可能在mysql中不会报错,但在Oracle中就会报错了,报错如下:

oracle里面group by_oracle中order by

 

SQL语句例如: 

 select ar.name 区域名,a.areaid 区域号,sum(a.money) 年水费合计数   from t_account a, t_area ar where  ar.id=a.areaid  group by a.areaid;

代码100分

 

如果直接在Oracle中这样写,就会直接报以上显示的错误

正确写法:

代码100分select (select ar.name from t_area ar where ar.id=a.areaid  )as 区域名,a.areaid 区域号,sum(a.money) 年水费合计数   from t_account a  where a.year="2012" group by a.areaid;

 

 

总结:

  • 如果没有group by 子句,select 中不能同时出现字段与分组的聚合函数,

例如:错误的用法

select ar.name 区域名,a.areaid 区域号,sum(a.money) 年水费合计数   from t_account a, t_area ar where  ar.id=a.areaid 

  • 在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在聚合函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在聚合函数中。)
  • 通俗点来说就是; 在有 group by 的子句的查询中 , 如果要在select 后面接 展示的字段 , 只能用当前group by 所在表的字段(group by 子句中的字段), 或者使用在聚合函数中 

 

 

 

 

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多! 

~感谢志同道合的你阅读,  你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8182.html

(0)
上一篇 2023-03-06
下一篇 2023-03-06

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注