选出男生和女生前三名的信息
2015-01-23 11:28
363 查看
接触的业务多了,写sql也慢慢熟悉起来。最近见到一个题:用一条sql语句选出一个班男生和女生前三名的信息。
sql如下:
第一种写法,不管并列:
结果:
第二种写法,算并列:
结果:
sql如下:
</pre><pre name="code" class="html">mysql建表: create table students( id int(10) NOT NULL AUTO_INCREMENT, name varchar(20), sex varchar(10), fenshu int(5), primary key (id) )engine=innodb default charset=utf8 auto_increment=1; insert into students(name,sex,fenshu)values('111','男',99); insert into students(name,sex,fenshu)values('222','男',98); insert into students(name,sex,fenshu)values('333','男',97); insert into students(name,sex,fenshu)values('444','男',96); insert into students(name,sex,fenshu)values('555','男',95); insert into students(name,sex,fenshu)values('666','男',99); insert into students(name,sex,fenshu)values('777','男',99); insert into students(name,sex,fenshu)values('888','男',99); insert into students(name,sex,fenshu)values('011','女',99); insert into students(name,sex,fenshu)values('022','女',98); insert into students(name,sex,fenshu)values('033','女',97); insert into students(name,sex,fenshu)values('044','女',96); insert into students(name,sex,fenshu)values('055','女',95); insert into students(name,sex,fenshu)values('066','女',99); insert into students(name,sex,fenshu)values('077','女',99); insert into students(name,sex,fenshu)values('088','女',99);
第一种写法,不管并列:
(select * from students where sex = '男' order by fenshu desc limit 3 ) union all (select * from students where sex = '女' order by fenshu desc limit 3);
结果:
1 111 男 99 13 888 男 99 12 777 男 99 6 011 女 99 16 088 女 99 15 077 女 99
第二种写法,算并列:
(select s.* from students s, (select T1.fenshu from (select count(*),fenshu from students where sex = '男' group by(fenshu) order by fenshu desc limit 3)T1 )T11 where s.fenshu in(T11.fenshu) and s.sex = '男' order by s.fenshu desc ) union all (select s1.* from students s1, (select T2.fenshu from (select count(*),fenshu from students where sex = '女' group by(fenshu) order by fenshu desc limit 3)T2 )T22 where s1.fenshu in(T22.fenshu) and s1.sex = '女' order by s1.fenshu desc ) ;
结果:
1 111 男 99 2 222 男 98 3 333 男 97 11 666 男 99 12 777 男 99 13 888 男 99 6 011 女 99 7 022 女 98 8 033 女 97 14 066 女 99 15 077 女 99 16 088 女 99
相关文章推荐
- Nielsen调查显示:女生发信息数量是男生的1.5倍
- ★十一种值得女生交往的男生★ 转载!!
- 女生最想让男生知道的58件事
- 一个女生看了会哭,男生会沉..
- 男生看了可要警惕,女生看了不要偷学
- 男生的眼泪、女生永远不懂纯属伤感
- 【程序员之战】女生从事iOS开发VS男生的优势在哪里!
- [转] 太恐怖了!安全第一 ,女生一定要看,男生看完转告你的女性朋友
- bzoj 2162: 男生女生
- 23的男生女生都该看.看完你会变一个人
- 男生容易误解女生的几个行为
- [男生必阅]男生应该体谅女生的十个地方
- 转载 女生做完和男生做完…
- [hacking joke]知乎-男生很讨厌女生涂指甲油吗?
- 男生最怕女生的三个答案
- 大于23的男生女生都该看.看完你会变一个人
- 关于一个男生和一个女生分手后的感受
- 查询每个部门工资前三名的员工信息
- [转载]女生看了会哭男生会沉默的故事
- SQL(收藏)查询每个部门工资前三名的员工信息