锁定老帖子 主题:一道淘宝的考察sql语句的面试题
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-26
Select * From (Select * From t_stu s Where s.gender = 'f'Order By grade Desc) Where Rownum <=5
Union Select * From (Select * From t_stu s Where s.gender = 'm'Order By grade Desc) Where Rownum <=5; |
|
返回顶楼 | |
发表时间:2011-11-03
select * from t_stu ttt where ttt.grade in (select tt.grade from (select distinct t.grade from t_stu t order by t_stu desc) tt where rownum <4 ) and sex=0
union select * from t_stu ttt where ttt.grade in (select tt.grade from (select distinct t.grade from t_stu t order by t_stu desc) tt where rownum <4 ) and sex=1; |
|
返回顶楼 | |
发表时间:2011-11-16
select * from (select * from (select top 5 * from sql where sex = '男' order by id asc) a union all select * from (select top 5 * from sql where sql.sex = '女' order by id asc) b) c order by id asc |
|
返回顶楼 | |
发表时间:2011-11-16
select * from t_stu t
where t.grade in ( select grade from (select distinct grade from t_stu t1 where t1.gender=t.gender order by t1.grade ) a where a.rownum<=5 ) order by t.grade; |
|
返回顶楼 | |
发表时间:2011-11-16
lianglaiyang说得对,但是还少说了一个性别,男生中的前5名,女生中的前5名。。。。。
考察的不是sql,是审题啊 |
|
返回顶楼 | |
发表时间:2011-11-17
select * from t_stu a where exists (select 1 FROM t_stu where gender=a.gender AND grade>a.grade having count(1)<5) |
|
返回顶楼 | |
发表时间:2011-11-30
create table T_stu
(name varchar2(20), sex varchar2(10), score varchar2(10) ) select * from T_stu 1 张三 男 60 2 里斯 男 66 3 王五 男 55 4 找刘 男 67 5 侯酒 男 56 6 舒适 男 67 7 盐巴 男 78 8 久久 男 67 9 张华 女 55 10 张扬 女 67 11 张素 女 67 12 张凡 女 56 13 张彤 女 78 14 张伟 女 68 15 张清 女 87 16 张穆 女 67 17 彰显 女 56 18 黄杨 女 89 select *from ( select t.* , row_number() over(partition by t.sex order by t.score desc) 排名 from T_stu t ) t1 where t1.排名<7 NAME SEX SCORE 排名 1 盐巴 男 78 1 2 找刘 男 67 2 3 久久 男 67 3 4 舒适 男 67 4 5 里斯 男 66 5 6 张三 男 60 6 7 黄杨 女 89 1 8 张清 女 87 2 9 张彤 女 78 3 10 张伟 女 68 4 11 张扬 女 67 5 12 张穆 女 67 6 轻松搞定 |
|
返回顶楼 | |
发表时间:2012-04-25
isaacfu_454 写道
select * from t_stu a where 5>(select count(*) FROM t_stu where gender=a.gender AND grade>a.grade) order by a.grade desc +1 |
|
返回顶楼 | |
发表时间:2012-04-26
select * from
( select t.no,salary,row_number() over(partition by sex order by salary desc) row_num from tbl_testimport1 t ) where row_num<=5 |
|
返回顶楼 | |
发表时间:2012-04-26
xiangzi21 写道 (select * from t_stu where gender = 0 order by grade desc limit 5)
union all (select * from t_stu where gender = 1 order by grade desc limit 5) 这个不是想要的结果吗? 关键是考: row_number() over(partition by sex order by salary desc) 这个吧 |
|
返回顶楼 | |