hive和mysql中递归操作
标签搜索

hive和mysql中递归操作

海绵
2022-04-14 / 0 评论 / 51 阅读 / 正在检测是否收录...

简单记录一下如何用 SQL 去做递归操作。

MySQL8.0 可以直接支持递归的操作,Hive中并不支持这个语法,但是可以通过开窗函数去解决。

何为SQL的递归操作

好比如新增一列,id 根据某种规则做对应的变化。

MySQL8.0的实现

WITH RECURSIVE cte (n) AS
(
  SELECT 1
  UNION ALL
  SELECT n + 1 FROM cte WHERE n < 5
)
SELECT * FROM cte;

Hive的实现

select row_number() over() -1 as rn 
from (select explode(split(space(23), ''))) t

第一步:space 函数。这一个函数是返回指定数量的空格。但是不能直使用 explode 。所以这里就需要 spilt 去操作了。因为spilt 返回的就是数组。

explode 的操作就是把一个数组的每一个元素生成一列数据。

0

打赏

海报

正在生成.....

评论 (0)

取消