面试日记(1)

前言:我写这个完全是自己面试中的问题收集,或者自己的想法.希望其他兄弟姐妹能获得一些需要的东西.
2006年2月中旬,我去一家公司面试,电脑城那边的一家;瓦赛,楼层挺高的,23楼哦(我一般面试或上班都是10楼以下的哦,呵呵);和他们的技术老大聊了会工作经验,基础知识;之后,他说:这样吧,我给你一道题,看下你的水平如何?我当然只有硬接了,谁知道他出什么题哦?

题目只有一道,如下;
user_id,user_name,salary
1 ,Jack ,1000
2 ,Mick ,1200
3 ,Tom ,1000
4 ,Frank ,1300

写一个sql语句,目的是获得相同薪水的人的名称 我当时根据数据库原理,笛卡尔集思想来写了这么一句: 

Select user_name,salary From Table
where salary in
(
select A.salary from Table A,B
where
A.salary = B.salary
and A.user_name <> B.user_name
)

理论上,这是一个完美的sql语句,但是这也是一个复杂的语句,原因在于,它需要自交产生更大的数据,从而使得访问速度渐慢;不是很实用的sql

另外一个较好的sql,是讨论出来的:
Select salary ,user_name, From Table
Where salary in
(
select salary from Table
Group by salary
having (count(salary)>1)
)
Order by salary ,user_name

非常简单明了.

对于这个写法,我非常高兴;至少我知道我还需要更多的熟悉一些基本的数据库标准函数.
面试,不要看的太远,原来能积累一些东西就是一种成长!

希望有什么好的sql,请告诉我,谢谢了!

posted @ 2006-02-23 09:55  西就东城  阅读(609)  评论(3编辑  收藏  举报