2022.09.07 学习笔记

本文介绍了窗口函数在数据库查询中的应用,如rank(), dense_rank()和row_number()的区别,以及它们如何用于获取每个分组内的排名。同时,文章探讨了线程池的工作原理,包括核心线程、任务队列和最大线程数的角色,以及任务调度策略。
摘要由CSDN通过智能技术生成

窗口函数

作用:根据分组以及排序规则进行排序,返回该行对应的排名

方法:<窗口函数> over (partition by <分组列名> order by <排序列名>)

例子:

select student_id,course_id,grade
from 
(
    select student_id,course_id,grade,
    rank() over (partition by student_id order by grade desc, course_id) ranking
    from Enrollments
) t
where t.ranking = 1

窗口函数间的区别:

  • rank():如果存在相同大小的,大小相同的rank()一样,下一个的排名+2
  • dense_rank():如果存在相同大小的,大小相同的dense_rank()一样,下一个的排名+1
  • row_number():及时存在相同大小的,也依旧按照顺序排列,不会跨排名

在这里插入图片描述

线程池

  • 处理流程

1.查看核心线程池是否已满,不满就创建一条线程执行任务,否则执行第二步。

2.查看任务队列是否已满(Blocking queue),不满就将任务存储在任务队列中,否则执行第三步。

3.查看线程池是否已满,即就是是否达到最大线程池数,不满就创建一条线程执行任务,否则就按照策略处理无法执行的任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值