大数据SQL经典面试题系列(5) - 如何找出最小的N个数

表结构:

表名:Student
name	-- 姓名
stunum	-- 学号
class	-- 班级
adtime	-- 入学时间
age		-- 年龄
major	-- 专业
namestunumclassadtimeagemajor
小赵00011班2016-09-0119计算机
小钱00021班2017-09-0121计算机
小孙00032班2017-09-0119金融
小李00043班2017-09-0117计算机
小周00053班2017-09-0120计算机
小吴00063班2017-09-0118计算机
表名:Success
stunum	-- 学号
counum	-- 课程号
success	-- 成绩
stunumcounumsuccess
00010190
00020170
00020284
00030190
00030380
00040190
00040260
00050185
00060270

筛选出2017年入学的“计算机”专业年龄最小的3位同学名单(姓名、年龄)

这道题,有可能考的是limit吧。

select 
    name,
    age
from
    student
where 
    major='计算机' and year(adtime)=2017
order by 
    age
limit 3
;

统计每个班同学各科成绩平均分大于80分的人数和人数占比

select 
    a.class,
    sum(case when b.avg_suc>80 then 1 else 0 end) as num,
    sum(case when b.avg_suc>80 then 1 else 0 end)/count(a.stunum) as pro
from 
    student a 
left join(
    select 
        stunum,
        avg(success) as avg_suc
    from 
        success
    group by 
        stunum
    ) b
on 
    a.stunum=b.stunum
group by 
    class
;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当谈到 Java 和 SQL经典面试时,有几个常见的问可以提及: 1. 什么是 JDBC?它的作用是什么? JDBC(Java Database Connectivity)是 Java 语言与数据库进行交互的标准 API。它提供了一组用于执行 SQL 语句、访问和处理数据库的类和接口。通过 JDBC,Java 程序可以连接到不同的数据库管理系统(如MySQL、Oracle等),执行查询、插入、更新和删除等操作。 2. JDBC 的工作原理是什么? JDBC 使用驱动程序(Driver)来连接和操作数据库。驱动程序根据特定数据库的规范实现了 JDBC 接口,通过提供连接、执行 SQL 语句和处理结果等功能来实现与数据库的交互。 3. 什么是连接池(Connection Pool)?为什么要使用连接池? 连接池是一组数据库连接的缓存,用于提高数据库连接的复用性和性能。当应用程序需要与数据库进行交互时,可以从连接池中获取一个可用的连接,完成数据库操作后将连接归还给连接池,而不是每次都重新创建和销毁连接。这样可以减少连接的创建和销毁开销,提高数据库操作的效率。 4. 什么是事务(Transaction)?请解释 ACID 原则。 事务是一组数据库操作,要么全部成功执行(提交),要么全部失败(回滚)。ACID 是事务的四个特性原则,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性指事务中的操作要么全部执行,要么全部取消;一致性指事务的执行将数据库从一个一致状态转换为另一个一致状态;隔离性指事务的执行在不同的并发环境下不相互影响;持久性指一旦事务提交,对数据库的修改将永久保存。 这些是一些常见的 Java SQL 面试,希望能对你有所帮助!如果你还有其他问,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒 暄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值