经典SQL面试题目

已经知道原表
year salary
------------------ ---------------------
2000 1000
2001 2000
2002 3000
2003 4000
显示查询结果
year salary
------------------ ---------------------
2000 1000
2001 3000
2002 6000
2003 10000

即salary为以前年的工资的和;


我这里提供的答案有两种
第一种:
select b.year,sum(a.salary)
from salary a,salary b
where a.year<=b.year group by b.year
order by b.year;

其中salary 为工资表


第二种:
select s1.year "year",(select sum(s2.salary) from salary s2 where s2.year<=s1.year) "salary" from salary s1;

现在我们假设只有一个table,名为pages,有四个字段,id, url,title,body。里面储存了很多网页,网页的url地址,title和网页的内容,然后你用一个sql查询将url匹配的排在最前, title匹配的其次,body匹配最后,没有任何字段匹配的,不返回。

就是上面这道面试题,让我想了一个下午,在网上找资料,最后用下面方法实现

 

posted @ 2010-12-06 21:58  BuildNewApp  阅读(330)  评论(0编辑  收藏  举报