加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle SQL查询:为员工获得最大的销售额

发布时间:2021-01-08 03:16:40 所属栏目:站长百科 来源:网络整理
导读:我想为每位员工找到最大的销售(并显示员工的姓名).在 MySQL中,它非常简单: select * from employee,sale where employee.id = sale.employee_id group by employee_id order by sale.total desc 这几乎与人们所期望的一样,它会返回一份员工列表,最终返回员

我想为每位员工找到最大的销售(并显示员工的姓名).在 MySQL中,它非常简单:

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,sale
where employee.id = sale.employee_id
group by employee.id,employee.name
order by max(sale.total) desc

这是一个痛苦 – 我以前必须多次这样做 – 但只需将所有相关列添加到您的组中

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!