当前位置: > 财经>正文

MySql 查询排名前10(包含并列)Sql 外汇货币排名前十名是什么银行的卡啊

2023-08-15 14:10:48 互联网 未知 财经

今天一个测试的朋友去面试,考察了她数据库查询的一些语法问题,但是一些细节她没有考虑进去被刷下了。果然行业标准提高了啊。

贴一下笔试题目。

–1.学生表 Student(SId,Sname,Sage,Ssex) –SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别

–2.课程表 Course(CId,Cname,TId) –CId 课程编号,Cname 课程名称

–3.成绩表 SC(SId,CId,score) –SId 学生编号,CId 课程编号,score 分数

完成如下查询: ① 查询即选了课程编号A又选了课程编号B的学生信息 ② 查询所有学生的选课数量和总成绩 ③ 查询课程编号A成绩前十的学生信息和对应的分数 ④ 查询选课热度前三的课程信息 ⑤ 查询每个学生的选课信息

这题目大概大家都不陌生,但是说到查询前多少名时很多人第一反应就是用 top,并没有考虑不同数据库是不一样的而且并列排名也往往会忽略。 就此 ,我贴一下我的答案,写的不好,希望多交流。

第1题 select * from student where sid in (SELECT sid from sc WHERE cid in (A,B)) 第2题 Select sum(score),count(cid),s.sid ,sname from student s left join sc on s.sid = sc.sid group by s.sid ,sname 第3题 -- Orcal serverSql 用 top 10-- MysqlSELECT * from (SELECT sid,cid, Score,@rank:= if(@pre=score, @Rank+0, @Rank+1) as Rank, @pre:= score FROM sc , (SELECT @rank:=0, @pre:= NULL) r where cid = 2ORDER BY score desc ) a LEFT JOIN student s on a.sid = s.sid WHERE rank

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。