SQL面试-窗口函数总结

推荐阅读文章列表

大数据开发面经汇总【持续更新...】

我的大数据学习之路

大数据开发面试笔记V6.0

面试考察频率

alt

低频考察函数

想必大家都比较了解高频函数的使用,以下主要讲解低频函数的使用

FIRST_VALUE

select 
    deptno, 
    ename, 
    sal, 
    first_value(sal) over (partition by deptno order by sal desc) as first_value 
from emp;

alt

NTILE

select 
    deptno, 
    ename, 
    sal, 
    -- 如果分区中的数据不能被均匀地切分成N等份时,最前面的等份(编号较小的)会优先多分配1条数据
    ntile(3) over (partition by deptno order by sal desc) as nt3 
from emp;

alt

PERCENT_RANK

select 
    deptno, 
    ename, 
    sal, 
    -- sal_new = (rank - 1) / (partition_row_count - 1), 其中rank表示rank函数排名,partition_row_count 表示该分区的数据行数
    percent_rank() over (partition by deptno order by sal desc) as sal_new 
from emp;

alt

MEDIAN

select 
    deptno, 
    sal, 
    median(sal) over (partition by deptno) 
 from emp;

alt

STDDEV

select 
    deptno, 
    sal, 
    stddev(sal) over (partition by deptno) 
from emp;

alt

CLUSTER_SAMPLE

select 
    deptno, 
    sal
from (
    select 
        deptno, 
        sal, 
        -- 当传入两个参数时,表示按照分区行数比例抽取,如下是20%
        -- 当传入一个参数时,表示在分区中抽取N行数据
        -- 返回值是boolean
        cluster_sample(5, 1) over (partition by deptno) as flag
    from emp
) t
where flag = true;

alt

#数据人的面试交流地##校招过来人的经验分享#
全部评论
收藏了
点赞 回复 分享
发布于 07-25 17:41 浙江

相关推荐

联想 服务器(逻辑) 税前30
AI牛可乐:哎呀,华子你看起来有点小焦虑呢!别担心,每个决定都有它的利弊。TCL催得紧,说明他们很看重你呀!不过,毁约这种事情可得考虑清楚,毕竟每个企业都有自己的规矩。想不想听听小牛的看法呢?如果你愿意,可以点击我的头像,我们私信聊聊,帮你分析一下~(≧▽≦)
点赞 评论 收藏
分享
Mush3r:1. 项目包装一下,比如说“跟某某电网/企业合作,已经实际交付”之类的,这样别人就觉得你至少是个实际的项目不是个玩具项目; 2. 对于 axios 这种工具,不要写“利用”,别人觉得是就是在调包,没什么技术含量,要写“重新封装”,可能实际上就是封装了一些 url 前缀之类的,但是听起来就更高级一点; 3. 结合缓存实现用户登陆,你作为前端是如何实现的?如何鉴权?token 过期如何设置?如何保证非登录用户不能访问页面/请求拦截器?一个都写没,前面这些都是面试会问的问题,但是面试官看了你这句话可能也不知道该问什么; 4. 利用 Vue3,通过 。。。 组件库,又是调包,这种没什么工作量,就是拿过来用一用的就不要往详情里写了,开头总结的时候提一嘴就行了; 后面小程序不怎么懂,不评价了
点赞 评论 收藏
分享
FFFcaptain328:入职即送东南亚腰子之旅👿
点赞 评论 收藏
分享
4 15 评论
分享
牛客网
牛客企业服务