ITPub博客

首页 > 数据库 > 数据库开发技术 > 无中生有-用hive sql生成连续1-100的数字

无中生有-用hive sql生成连续1-100的数字

原创 数据库开发技术 作者:晨曦_001 时间:2022-12-20 16:08:00 0 删除 编辑

“ 不使用任何表,通过hsql直接查询出1-100的数字”



如题,如何使用hive sql生成1-100的数字呢?通常sql主要用来查询和处理数据,题目中要求不借助表,着实是一个有挑战的事情,如何实现呢?我们逐步拆解一下这个问题。

思路分析:如果我们有100行数据,只需要对这些数据进行排序,然后就可以得到目标结果;

如何得到100行数据呢?如果有99个分隔符,我们通过行转列,即可得到对应的数据;

那么这个题目即可转化为生成一个字符串,里面有99个可以作为分隔符的内容。这让我们想到了hive中的space 函数。

语法: space(int n)返回值: string说明:返回长度为n的空格字符串

开始试验

1.测试space函数

select space(10);

2.测试分隔符

select split(space(10),' ');

3.试验生成1-10的数据

select row_number() over() as idfrom  (select split(space(9), ' ') as space_list) t  lateral view explode(space_list) tt;

4.结论

我们只需要通过把space(9) 改为space(99) 即可完成生成1-100的需求;



原文作者:数据仓库技术;如有侵权,请联系管理员删除。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
公众号:数据仓库技术 数据仓库技术:https://dwsql.com spark内置函数手册: https://sparkfunctions.com

注册时间:2022-12-18

  • 博文量
    116
  • 访问量
    55262