
sql
文章平均质量分 60
Tao_666
这个作者很懒,什么都没留下…
展开
-
sql-rand()随机函数使用方法介绍
1、随机取数MySql或Hive数据库,从样本数据中随机提取数据表中的N条记录,可以使用rand()函数,结合使用order by对数据排序,用limit N取topNselect * from TableName order by rand() limit N案例:每月信用卡支出总额超过1000美元的客户有机会赢得抽奖。假设您在2019年10月从所有符合条件的客户中随机选择100名幸运客户,您是否可以编写一个查询以返回“user_id”列表作为此次抽奖的结果?--Task 1. Lucky Dr原创 2021-08-01 12:47:38 · 11169 阅读 · 0 评论 -
Hive-sql常用正则函数
1、%:模糊查询的通配符使用场景:模糊查询然后进行剔除测试数据,例:客户名称 not like ‘%测试%’模糊搜索查询如查询test表中如下数据:(1)查询name以“张”开头的数据:select * from test where name like ‘张%’;(2)查询name以“三”年结尾的数据:select * from test where name like ‘%三’;(3)查询name中包含“测试”的数据:select * from test where name l原创 2021-07-19 12:11:47 · 1323 阅读 · 0 评论 -
hive分箱函数ntile()
ntile()函数的作用是等频分箱,把观测值进行有序排列(默认升序),根据观测值的总个数等分为k部分,每部分当作一个分箱,即百分位数的概念,可以根据箱号选取前或后n分之几的数据。函数方法:ntile(n) over(order by col) as bucket_numn是指定的分箱数量。如果不能平均分配,则优先分配较小编号的箱,并且各个箱中能放的行数最多相差1备注:NULL值的处理,可以设置单独为一组,或者默认为最小值select col -- NULL默认为最小值转载 2021-04-18 17:03:53 · 5113 阅读 · 0 评论 -
hive sql 行转列&列转行
数据的存储有时候存在一个主键对应多行数据记录的情况,如果我们想把数据做行转列(合并)操作,就可以使用concat_ws(’,’, collect_set(column_name))函数,返回string。仅仅使用collect_set(column_name)函数返回的是数组,见下边第3条说明。说明:collect_set()去重,collect_list()不去重,column_name的数据类型要求是string1、多行转列create table students_info(`sno` st原创 2021-04-18 12:46:08 · 1649 阅读 · 0 评论 -
SQL将多个select语句的查询结果同时显示
如果我们需要将多个select语句查询的同样类型结果(字段数量必须一样,字段名称可以不一样,不一样时以第一个select语句的字段名称为准)一块同时显示出来,这时候就需要用到union或者union all关键字。1、union all(union表示联合的意思)对两个结果集进行并集操作,对相同的结果不进行剔重,包括重复行,不进行排序。2、union对两个结果集进行并集操作,对相同的结果进行剔重,不包括重复行,同时进行默认规则的排序。3、intersect对两个结果集进行交集操作,不包括重复行,原创 2020-11-28 21:45:00 · 12477 阅读 · 0 评论 -
SQL分组排序和排序函数(rank、dense_rank、row_number)
1、分组不连续排序rank() over(partition by order by )partition by进行分组,rank+order by 进行给每个分组内的记录进行排序2、分组连续排序dense_rank() over(partition by order by)注:不分组排序rank() over(order by )3、row_number() over(partition by order by )row_number()不会出现相同排序,就算两条记录参与排序的字段的原创 2020-11-28 21:25:05 · 19767 阅读 · 0 评论