select * from employee,sale where employee.ID = sale.employee_ID group by employee_ID order by sale.total desc
这几乎与人们所期望的一样,它会返回一份员工列表,最终返回员工行中最大的销售记录.
但是,当使用group by子句时,Oracle不允许您返回不按表达式分组的列.这样做可以让我在MysqL中做的“不可能”在Oracle中吗?或者有一些解决方法吗?我想我可以执行某种子查询,但不确定是否有另一种方法可以做到这一点,构建起来并不是那么复杂.
解决方法 删除您的select *并将其替换为您需要的列,然后按所有“未处理”列进行分组.你最终会得到类似的东西:
select employee.ID,employee.name,max(sale.total)from employee,salewhere employee.ID = sale.employee_IDgroup by employee.ID,employee.nameorder by max(sale.total) desc
这是一个痛苦 – 我以前必须多次这样做 – 但只需将所有相关列添加到您的组中
总结以上是内存溢出为你收集整理的Oracle SQL查询:为员工获得最大的销售额全部内容,希望文章能够帮你解决Oracle SQL查询:为员工获得最大的销售额所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)