自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 数据求前或后百分比问题(分桶思想)

语法是:ntile (num) over ([partition_clause] order_by_clause) as your_bucket_num。本题要求的是支付金额前20%的用户,通过上述ntile函数分析 可知需要分5个桶,是对数据用户支付的总金额进行标签,然后求出对应的用户。ntile()函数主要用于对数据进行分片、分桶,其算法为如果数据能均匀分配的话就按照平均分配,不能均匀分配的话,优先将数据分配到编号较小的桶中。然后可以根据桶号,选取前或后 n分之几的数据。

2024-03-08 14:20:31 1012

原创 标记分桶重排序问题一

总结:关键点在于额外添加一个分桶列,然后通过sum(分桶列)over(partition by uid order by rnk),将桶号相同的分到一个组。--步骤1:当前行的日期减去上一行的日期,如果大于30天记录为一个事件用1表示,否则为0。(1)采用0和1进行事件标记,0表示未发生的事件,1表示事件发生。(1)当前行的日期减去上一行的日期,如果大于30天,记录为一个事件用1表示,否则为0。(3)结合(1)和(2)就能将变化前和变化后数据进行区分,就是数据分桶映射的过程。--步骤4:组内重新排序。

2024-03-07 17:45:36 1146 1

原创 小打卡圈主与用户映射关系问题

已知,数据如下:圈子可以理解为微信公众号,用户可以理解为公众号的粉丝 tb_habit圈子表:近千万行数据master_id(圈住的用户id) habit_id(圈住所建的圈子)user_habit_relation用户与圈子关系表:亿行数据habit_id(所建的圈子) user_id(加入圈子的用户)

2024-03-07 17:28:09 1156 1

原创 hql窗口函数之rows与range的区别

range后面跟计算表达式,对order by后面的某个字段值进行计算,计算后的结果表示其真正的范围。,有6,6,6,7,8,所以range_sum=6+6+6+7+8=33。,有1,1,3,所以range_sum=1+1+3=5。,有1,1,3,所以range_sum=1+1+3=5。:id =1,sum的范围为:所有处于[0,3]的值,:id=1,sum的范围为:所有处于[0,3]的值,:id=3,sum的范围为:所有处于[2,5]的值,:id=6,sum的范围为:所有处于[5,8]的值,

2024-03-07 15:35:52 480 1

原创 插入排序程序

package com.cos.lession09.demo1;import java.util.Arrays;public class Demo1 { public static void main(String[] args) { int[] a = { 65, 54, 87, 23, 42, 77, 55, 15, 88, 99 ,6}; /* * 插入排序,他逻辑上把数组的第一个值划分为有序区域,右边的值为无序区域 ...

2021-12-16 18:01:47 562

原创 冒泡排序程序

package com.cos.lession08.demo4;import java.util.Arrays;/*** 冒泡排序** @author cos**/public class MaoPaoDemo { public static void main(String[] args) { int[] a = { 65, 54, 87, 23, 42, 77, 55, 15, 88, 99 }; System.out.printl...

2021-12-16 17:55:51 652

原创 选择排序程序

package com.cos.lession08.demo4;import java.util.Arrays;/*** 选择排序* @author cos**/public class XuanZeDemo { public static void main(String[] args) { int[] a = { 65, 54, 87, 23, 42, 77, 55, 15, 88, 99 }; //比较的轮数是数组长度-1 ...

2021-12-16 17:54:40 480

原创 修改名字小程序

package com.cos.lession08.demo3;import java.util.Arrays;import java.util.Scanner;public class SimpleNameSystem { public static void main(String[] args) { Scanner input = new Scanner(System.in); String[] names = { "张三", "李四", "王五",...

2021-12-16 17:53:13 147

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除