阅读 13719 次
发表时间:2011-08-09
你直接写(工资+1000)×2还好点
还有虽然能直接用SQL查出来来 但对性能是极大的损耗
真不明白出题的人是什么水品
发表时间:2011-08-09
wolfhk 写道
select year,sum(salary) over(order by year) from table;
刚从联创离职不久,我以前去联创面试的时候怎么没看到过这个题目。。

窗口函数,不错啊
发表时间:2011-08-10
首先嵌套子查询是不推荐的(2楼兄弟的).虽然在这不会有什么性能问题.但是这种方法估计会被面试官BS........

比较好的是连接
select a.year, sum(b.sal) from yourtable a left join yourtable b on a.year >= b.year group by a.year

这种方法是比较靠谱的..

如果你想向面试官展示一下你的SQL功底.. 还可以show一下分析函数

select year,sum(sal) over(order by sal rows between unbounded preceding and 0 following)  from yourtable

是不是很帅......
发表时间:2011-08-10
如果是mysql可以如此那么。。。

SET @price=0;
SELECT @price:=price+@price,`year`FROM hello ORDER BY `year` ASC
发表时间:2011-08-10
但就这一个问题来说,没有比select 年份,(1000+工资)*工资/2000 from table 效率更高的了。
发表时间:2011-08-10
idle_sun 写道
首先嵌套子查询是不推荐的(2楼兄弟的).虽然在这不会有什么性能问题.但是这种方法估计会被面试官BS........

比较好的是连接
select a.year, sum(b.sal) from yourtable a left join yourtable b on a.year >= b.year group by a.year

这种方法是比较靠谱的..

如果你想向面试官展示一下你的SQL功底.. 还可以show一下分析函数

select year,sum(sal) over(order by sal rows between unbounded preceding and 0 following)  from yourtable

是不是很帅......

接受鄙视。。跟组织学习。。

不过你sql有点问题 应该是inner
发表时间:2011-08-10
tonly85 写道
harry_bote 写道
去年面试联创的时候遇到过这个题目,  当时我一看就知道怎么做了,利用小学学的那个高斯公式,不到半分钟写出了
select 年份,(1000+工资)*工资/(工资*2) from table ,那个组长一愣,验证了一下说,对是对,有点剑走偏锋的感觉,回去等通知吧。

阁下很会找规律啊,不过前提是工资成等差数列才可行。

harry_bote 写道
不好意思,打错了,是(1000+工资)*工资/2000



居然还有人说这个方法有才-_-!,还高斯公式,真是服了,就这垃圾公式也配叫高斯公式?这个只能说那组长还水了,要是我直接K了你,你这完全没理解题目需求,明显的是要求工资累计值,二楼的方法才是正解。
从数学原理上看你这个也不靠谱,你这个只能适应工资的等差值为1000的情况, 如果原表中工资分别是1000,3000,5000.... 你这个就梗屁了,如果照你这样搞,我有一万种方法查出题目所要的结果。
退一万步说就算工资是等差算列,也应该写成这样: select 年份, (1000+工资)*(select count(*) from table a where a.年份<= b.年份)/2 from table b
发表时间:2011-08-10
select year,sum(score) over(order by year) from 表
发表时间:2011-08-11
用Oracle的分析函数,连续求和
发表时间:2011-08-11
leonayx123 写道
idle_sun 写道
首先嵌套子查询是不推荐的(2楼兄弟的).虽然在这不会有什么性能问题.但是这种方法估计会被面试官BS........

比较好的是连接
select a.year, sum(b.sal) from yourtable a left join yourtable b on a.year >= b.year group by a.year

这种方法是比较靠谱的..

如果你想向面试官展示一下你的SQL功底.. 还可以show一下分析函数

select year,sum(sal) over(order by sal rows between unbounded preceding and 0 following)  from yourtable

是不是很帅......

接受鄙视。。跟组织学习。。

不过你sql有点问题 应该是inner


不好意思..   唉   习惯的left join了.... 顺手就打出来了..... T.T
Global site tag (gtag.js) - Google Analytics