一个很简单的sql问题

wanghao2979 2013-01-14 04:44:20
with
t1 as
(
select 'jones' as name,2975 as sal,10 as deptno from dual
union all
select 'scott' as name,3000 as sal,10 as deptno from dual
union all
select 'ford' as name,3000 as sal,20 as deptno from dual
union all
select 'sakl' as name,2500 as sal,10 as deptno from dual
union all
select 'wh' as name,1100 as sal,10 as deptno from dual
union all
select 'jjj' as name,11000 as sal,20 as deptno from dual
)
,
t2 as
(
select 10 as deptno,'A组' as depname from dual
union all
select 20 as deptno,'B组' as depname from dual
)
--select * from t1
--select * from t2
select avg(t1.sal),t2.depname from t1 left join t2 on t1.deptno = t2.deptno
group by t2.depname


以上为数据
问题描述:求工资大于3000的部门
select avg(t1.sal),t2.depname from t1 left join t2 on t1.deptno = t2.deptno
group by t2.depname where avg(t1.sal) > 3000报错
求sql
...全文
989 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
longkuan_zhang 2013-01-21
  • 打赏
  • 举报
回复
先where 再分组
fw0124 2013-01-14
  • 打赏
  • 举报
回复
把where改成having
小海葵1 2013-01-14
  • 打赏
  • 举报
回复
group by t2.depname where avg(t1.sal) > 3000 → group by t2.depname having avg(t1.sal) > 3000

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧