首页 > 数据库技术 > 详细

MySQL-[--002--]-MySQL涉及的算法面试题

时间:2020-07-28 21:38:17      阅读:79      评论:0      收藏:0      [点我收藏+]

1、数据库 id name score

1 张** 72
2 王** 72
3 张*** 81
4 李**** 67
... ... ...
用两种方式查询student表中成绩为10~20名的学生

解决方法一:

select name from student order by score desc limit 9,10;

解决方法二:思路为新增一个伪列,伪列的是由1递增,取10-20即可

SET @rownum:=0;

SELECT name,score FROM(

SELECT 
  (@rownum := @rownum + 1) AS rownum,
  t.* 
FROM student t ORDER BY t.score DESC) tt

WHERE rownum BETWEEN 10 and 20;

2.having和not in

name subject score
褚一 语文 88
褚二 数学 77
张三 语文 85
张三 数学 99
李五   语文 89
李五 数学 84
李五 英语 93

 

题:查询 student表每门课都大于80 分的学生姓名

方法一:

SELECT name 
FROM student 
GROUP BY name 
HAVING MIN(score)>80;

方法二:

SELECT DISTINCT(name) FROM student WHERE name not in (SELECT DISTINCT(name) FROM student WHERE score <=80);

 

MySQL-[--002--]-MySQL涉及的算法面试题

原文:https://www.cnblogs.com/chushujin/p/13392735.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!