比较复杂的sql面试题「建议收藏」

一、分组统计每个班的分数前三名(等同于LeetCode:185. DepartmentTopThreeSalaries)表结构:createtablestudent(idvarchar(20),–编号classvarchar(20),–年级scoreint–分数);insertstudentvalues(‘1′,’一年级’,82);…

大家好,又见面了,我是你们的朋友全栈君。

一、分组统计每个班的分数前三名(等同于LeetCode:185. Department Top Three Salaries)

表结构:

create table student(

id varchar(20),-- 编号

class varchar(20),-- 年级

score int-- 分数

);
insert student values('1','一年级',82);

insert student values('2','一年级',95);

insert student values('3','一年级',82);

insert student values('4','一年级',40);

insert student values('5','一年级',20);

insert student values('6','二年级',95);

insert student values('7','二年级',40);

insert student values('8','二年级',3);

insert student values('9','二年级',60);

insert student values('10','二年级',10);

insert student values('11','三年级',70);

insert student values('12','三年级',60);

insert student values('13','三年级',40);

insert student values('14','三年级',90);

sql:

select a.class,a.score 
from student a 
where (select count(*) from student where class=a.class and a.score<score)<3
order by a.class,a.score desc;

二、LeetCode:262. Trips and Users

题目详见:https://leetcode.com/problems/trips-and-users/

sql:

SELECT Request_at Day,
       ROUND(SUM(IF(Status = 'completed', 0, 1)) / COUNT(*), 2) 'Cancellation Rate'
FROM   Trips t
LEFT   JOIN Users t1 ON t.Client_Id = t1.Users_Id
WHERE  t1.Banned = 'No' AND Request_at BETWEEN '2013-10-01' AND '2013-10-03'
GROUP  BY t.Request_at;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129291.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号