比较复杂的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;

 

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

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

(0)
上一篇 2022年4月13日 下午5:20
下一篇 2022年4月13日 下午5:40


相关推荐

  • poj3819 Coverage (求直线与圆的交占直线的百分比 )

    poj3819 Coverage (求直线与圆的交占直线的百分比 )

    2022年1月25日
    49
  • python进阶(13)装饰器[通俗易懂]

    python进阶(13)装饰器[通俗易懂]装饰器装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上。和这个函数绑定在一起。在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函数做为参数传入它头顶上这顶帽子,

    2022年7月28日
    11
  • idea git 合并分支到指定分支_idea合并分支到另一个分支

    idea git 合并分支到指定分支_idea合并分支到另一个分支ideagit的使用(四)git建立分支与合并分支作者:马育民 • 2017-11-1017:05 • 阅读:103571.为什么要建立分支git默认的主分支名字为master,一般团队开发时,都不会在master主分支上修改代码,而是建立新分支,测试完毕后,在将分支的代码合并到master主分支上。2.操作如下:2.1ideagit分支的操作ideagit的操作在右下角,如下图:说明…

    2026年4月15日
    9
  • leetocde-416分割等和子集(01背包)

    leetocde-416分割等和子集(01背包)原题链接给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.题解先看和如果式奇数,返回false,否则除以2,然后看是否能够用拼凑出整合处于

    2022年8月8日
    5
  • SCTP协议详解

    SCTP(StreamControlTransmissionProtocol)是一种传输协议,在TCP/IP协议栈中所处的位置和TCP、UDP类似,兼有TCP/UDP两者特征。SCTP是可以确保数据传输的,和TCP类似,也是通过确认机制来实现的。和TCP不同的是:1. TCP是以字节为单位传输的,SCTP是以数据块为单位传输的TCP接收端确认的是收到的字节数,SCTP接收端确认的是接收到的…

    2022年4月4日
    52
  • android 反射NoSuchMethodException异常

    android 反射NoSuchMethodException异常android反射NoSuchMethodException异常因为方法的参数是int类型,使用反射调用时使用Integer类型的参数。应该使用getDeclaredMethod(“****”,int.class);

    2022年6月23日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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