【SQL 学习】一个面试题

简介:

今天面试的时候,问了一个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                                      

相关文章
|
2月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
68 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
3月前
|
SQL 缓存 关系型数据库
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
65 0
|
3月前
|
SQL 存储 数据库
面试题19: 如何优化SQL查询?
面试题19: 如何优化SQL查询?
面试题19: 如何优化SQL查询?
|
4月前
|
SQL 测试技术 项目管理
轻松学习SQL外键约束的核心原理和实用技巧
轻松学习SQL外键约束的核心原理和实用技巧
49 0
|
2月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
196 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
51 0
|
4月前
|
存储 JSON 前端开发
No206.精选前端面试题,享受每天的挑战和学习
No206.精选前端面试题,享受每天的挑战和学习
No206.精选前端面试题,享受每天的挑战和学习
|
5天前
|
监控 安全 Java
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
|
1月前
|
SQL 关系型数据库 MySQL
SQL常见面试题总结2
SQL常见面试题总结
59 2
|
2月前
|
SQL 关系型数据库 MySQL
MySQL SQL语句面试准备
MySQL SQL语句面试准备
14 0

热门文章

最新文章