博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SQL 学习】一个面试题
阅读量:6948 次
发布时间:2019-06-27

本文共 1600 字,大约阅读时间需要 5 分钟。

今天面试的时候,问了一个sql编写的题目, 求每门成绩的最高分数的id 以及科目,分数。(当时没有写好,郁闷了,面试官还是很好的,给我讲解了一下!)回到宿舍自己有写了一下,两个方法:

SQL> create table test (id int ,subject varchar2(20), score int);

表已创建。
SQL> insert into test values(1 ,'math',95);
已创建 1 行。
SQL> insert into test values(2 ,'math',92);
已创建 1 行。
SQL> insert into test values(3 ,'math',97);
已创建 1 行。
SQL> insert into test values(3 ,'english',97);
已创建 1 行。
SQL> insert into test values(3 ,'chiness',79);
已创建 1 行。
SQL> insert into test values(1,'chiness',79);
已创建 1 行。
SQL> insert into test values(2,'chiness',89);
已创建 1 行。
SQL> insert into test values(1,'english',96);
已创建 1 行。
SQL> insert into test values(2,'english',86);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test;

        ID SUBJECT                   SCORE                                     

---------- -------------------- ----------                                     
         1 math                         95                                     
         2 math                         92                                     
         3 math                         97                                     
         3 english                      97                                     
         3 chiness                      79                                     
         1 chiness                      79                                     
         2 chiness                      89                                     
         1 english                      96                                     
         2 english                      86                                     

已选择9行。

SQL> select id ,subject,score from

  2  (select id ,subject,score,row_number() over (partition by subject
  3  order by score desc ) rn from test )
  4  where rn=1;

        ID SUBJECT                   SCORE                                     

---------- -------------------- ----------                                     
         2 chiness                      89                                     
         3 english                      97                                     
         3 math                         97                                     

SQL> select id ,subject,score from

  2  test t3 ,(select max(score) sco from test group by subject) t4
  3  where t4.sco=t3.score;

        ID SUBJECT                   SCORE                                     

---------- -------------------- ----------                                     
         3 english                      97                                     
         3 math                         97                                     
         3 english                      97                                     
         3 math                         97                                     
         2 chiness                      89                                     

SQL> select distinct id ,subject,score from
  2  test t3 ,(select max(score) sco from test group by subject) t4
  3  where t4.sco=t3.score ;

        ID SUBJECT                   SCORE                                     

---------- -------------------- ----------                                     
         3 english                      97                                     
         3 math                         97                                     
         2 chiness                      89                                      

转载地址:http://hprnl.baihongyu.com/

你可能感兴趣的文章
jQuery validate中添加失去焦点验证事件
查看>>
PHP面向对象关键知识点回顾
查看>>
SpringMVC Controller 介绍
查看>>
虚拟机的类加载机制
查看>>
登录判断跳转页面
查看>>
多线程IO操作(扫描文件夹并计算总大小)
查看>>
读UNIX编程艺术(一)
查看>>
oracle存储过程获取异常信息码和异常信息
查看>>
大系统小做培训总结
查看>>
javascript闭包与函数式编程
查看>>
基于ceph-rbd的文件共享
查看>>
Web Service 那点事儿(3)—— SOAP 及其安全控制
查看>>
自定义按钮
查看>>
Android手机摄像头作为PC摄像头开发
查看>>
Docker
查看>>
JPush Android 推送如何区分开发、生产环境
查看>>
Redis入门
查看>>
Spring下管理sessionFactory
查看>>
CentOS系统安装MySQL支持远程连接的方法
查看>>
python爱好者QQ群
查看>>