SELECT record_id, mid, UNNEST ( string_to_array( ext_7, ',' ) ) AS ext_7 FROM d_form_list_context_patrol_toadb_0419 WHERE check_result = 'check_no' 如何替换为hive sql 注意:字段为string类型
时间: 2024-01-18 18:03:49 浏览: 65
在 Hive SQL 中,可以使用 LATERAL VIEW 和 explode 函数来实现类似 UNNEST 的功能,具体的 SQL 可以写成:
```
SELECT record_id, mid, ext_7_exploded
FROM d_form_list_context_patrol_toadb_0419
LATERAL VIEW explode(split(ext_7, ',')) ext_7_exploded_table AS ext_7_exploded
WHERE check_result = 'check_no'
```
其中,LATERAL VIEW 和 explode 函数的作用是将 ext_7 字段中的逗号分隔的字符串转换为多行数据,ext_7_exploded_table 和 ext_7_exploded 分别表示转换后的表和字段名。
相关问题
SELECT record_id, mid, UNNEST ( string_to_array( ext_7, ',' ) ) AS ext_7 FROM d_form_list_context_patrol_toadb_0419 替换为hivesql
使用Lateral View和Explode函数替换UNNEST和string_to_array函数,同时选择需要的字段,Hive SQL语句如下:
SELECT record_id, mid, exploded_ext_7 AS ext_7
FROM d_form_list_context_patrol_toadb_0419
LATERAL VIEW explode(split(ext_7,',')) exploded_ext_7;
select count(1) from (SELECT record_id, mid, UNNEST ( string_to_array( ext_7, ',' ) ) AS ext_7 FROM d_form_list_context_patrol_toadb_0419 WHERE check_result = 'check_no' 如何替换为hive sql
你的问题中给出的 SQL 语句是 PostgreSQL 的语法,如果要在 Hive 中实现同样的功能,可以使用以下 SQL 语句:
```
SELECT count(1) FROM
(SELECT record_id, mid, explode(split(ext_7, ',')) AS ext_7
FROM d_form_list_context_patrol_toadb_0419
WHERE check_result = 'check_no') t;
```
其中,`split` 函数用于将 ext_7 字段按逗号分隔成数组,`explode` 函数用于将数组的每个元素拆分成单独的行,然后就可以统计行数了。
阅读全文