经验感悟维度不够

1.有时候 问题没处理(结果不对)
可能是视角问题。

2.求哪些人的薪水在部门的平均薪水之上

1)求部门的平均薪水薪水

select deptno,avg(sal) as avgsal from emp group by deptno;

+--------+-------------+
| deptno | avgsal      |
+--------+-------------+
|     10 | 2916.666667 |
|     20 | 2175.000000 |
|     30 | 1566.666667 |
+--------+-------------+

2) 将以上的查询结果作为一张临时表T,t和emp表连接,条件:t.deptno=e.deptno and e.sal>t.avgsal;

select ename,t.* from emp e

join (select deptno,avg(sal) as avgsal from emp group by deptno) t

on t.deptno=e.deptno and e.sal>t.avgsal;

结果:

+-------+--------+-------------+
| ename | deptno | avgsal      |
+-------+--------+-------------+
| ALLEN |     30 | 1566.666667 |
| JONES |     20 | 2175.000000 |
| BLAKE |     30 | 1566.666667 |
| SCOTT |     20 | 2175.000000 |
| KING  |     10 | 2916.666667 |
| FORD  |     20 | 2175.000000 |
+-------+--------+-------------+

这里 是维度没给全,代码是这样写的,只不过前面少些了一个e.sal

所以怎么都发现不了问题:

你的着眼点是对的 ,只是维度给少了,还不自知。

下面把e.sal 加上

正确做法

select ename,e.sal,t.* from emp e

join (select deptno,avg(sal) as avgsal from emp group by deptno) t

on t.deptno=e.deptno and e.sal>t.avgsal;

正确结果:

+-------+---------+--------+-------------+
| ename | sal     | deptno | avgsal      |
+-------+---------+--------+-------------+
| ALLEN | 1600.00 |     30 | 1566.666667 |
| JONES | 2975.00 |     20 | 2175.000000 |
| BLAKE | 2850.00 |     30 | 1566.666667 |
| SCOTT | 3000.00 |     20 | 2175.000000 |
| KING  | 5000.00 |     10 | 2916.666667 |
| FORD  | 3000.00 |     20 | 2175.000000 |
+-------+---------+--------+-------------+

心得体会与君共勉:

就是这些犯错啊这些才总结了这些经验,你才得到了这些新的知识,如果不犯错也就相当于拿着答案在抄,这对你没有任何意义,你就是需要这些总结,这种经验错误,你才能成为高手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值