sql
文章平均质量分 63
黑皮磊
这个作者很懒,什么都没留下…
展开
-
Hive rows between ,range between 的理解跟案例
unbounded preceding 起始行unbounded following 结尾行current row 当前行1 preceding 当前行的前1行1 following 当前行的后1行首先这是数据格式1.当前行到最后一行的汇总(逐行递减)with tt as(select a.*,sum(mainid)over(rows between current row and unbounded following) as sumsfrom (select r原创 2022-03-18 21:48:37 · 2742 阅读 · 0 评论 -
开窗函数 First_value , Last_value
首先数据格式select * from empSQL:select *,first_value( sal)over(partition by deptno order by sal) as a,last_value(sal)over(partition by deptno order by sal) as b,last_value(sal)over(partition by deptno order by sal rows between unbounded precedin...原创 2022-03-19 23:43:26 · 673 阅读 · 2 评论 -
各种开窗函数
1 sum(sal)over()求和 partition by order by 可以省略2 avg(sal)over()求平均 partition by order by 可以省略3 count()over()计数 partition by order by 可以省略4 row_number()over( order by sal)排序 partition by 可以省略 order by 不可以省略 5 rank( )over(or...原创 2022-03-20 00:09:22 · 620 阅读 · 1 评论 -
sql迭代(with)查询上下级等,以及sqlserver的行列转换
emp表1 为了便于分析,先拿一个员工select * from emp awhere a.empno in ('7369')2 用with迭代出7369的所有上级(迭代里面不能用外部关联)with tt as(select a.empno ,a.ENAME,a.mgr,b.ENAME as mgr_ENAME,count(a.ename)over(partition by a.empno) as rnfrom emp aleft join em...原创 2022-03-23 20:59:25 · 3940 阅读 · 0 评论 -
Sql 之连续登录(经典面试题)
1 .求用户连续登录的最大天数用户login表先将每个人按登录天数row_numberselect * ,row_number()over(partition by a.id order by login_date) as rnfrom login a我们会发现 login_date 与rn之前存在一定关系(连续登陆的 login_date-rn 都是一样的值)所以我们将login_date-rn 计算出来select * ,convert(varchar..原创 2022-03-26 01:49:19 · 4073 阅读 · 0 评论 -
Sql 经典题目(视频相同爱好推送)
Sql 经典题目id代表用户,spu_id 代表用户浏览的产品,可以看出 001 浏览了 ac 004 浏览了 acf所以我们的这题就是将001 004 有相同爱好(其中一个人的浏览全通东西必须完全与另一个人浏览的部分相同)应用场景(抖音 视频 等 点赞 推送视频)首先我们这是sql server 是运行的,别的数据库想法可以这样,语句的实现可能更加便捷我们的思路先是将每个人浏览的东西全部展现出来 格式如下(all_name 是浏览的所有产品)..原创 2022-03-29 01:52:50 · 448 阅读 · 0 评论