面試題:sql數據查詢


前幾天參加一個面試,面試公司讓做一套題,sql題不是很難,但是我第一次還是寫錯了,回來后,重新寫了下。簡單記錄下吧,

1.題目:

 

2.測試數據

 

select * from student ;


insert into student(name,subject,score) values('張','語文',96) ;
insert into student(name,subject,score) values('張','數學',62) ;
insert into student(name,subject,score) values('張','英語',85) ;
insert into student(name,subject,score) values('王','語文',12) ;
insert into student(name,subject,score) values('王','英語',100) ;
insert into student(name,subject,score) values('李','數學',10) ;
insert into student(name,subject,score) values('趙','英語',88) ;

 

 student表 ,一共三個字段 name ,subject ,score (數據類型分別為 varchar(50),varchar(50),int),測試表,比較簡單。

 

3.我寫的sql

select m.name from (
	select s.name ,s.score ,DENSE_RANK() over(PARTITION by s.name order by s.score asc) as score_rank from student s
) m where m.score_rank = 1 and m.score >=60 ;

 4.分析

 

以姓名相同的為一組,對其成績進行排序。然后取其成績最大值(rank=1的)大於60的人員。

最終查詢結果:

如有異議,歡迎指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM