SQL面试题:循环操作

简介: HiveSQL面试题,找出一串数字中1的位置

题目:给定表t,数据如下

str

1011

0101

10010110

001010111000

输出如下数据

res

1,3,4

2,4

1,4,6,7

3,5,7,8,9

思路:数据不是定长的,这里不能直接截取,那可以考虑进行split,但怎么进行呢,这里我们可以采用''进行切分,切分出的数组进行lateral view 展开。


构造数据:

with t as(select        str
fromvalues('1011'),('0101'),('10010110'),('001010111000')              tmp(str))str
1011010110010110001010111000

SQL代码:注意split按''切分后的数组长度会+2,因为str前后也是''

select split('1011','');--[, 1, 0, 1, 1, ]
set odps.sql.hive.compatible=True;--hive兼容模式select    str,    concat_ws(",",collect_list(cast(index as string)))as res
from(select        str,        index,        chr
from t
    lateral view posexplode(split(str,'')) a as index,chr
) b
where chr ="1"groupby str
str           res
0010101110003,5,7,8,901012,4100101101,4,6,710111,3,4

此题应该还有其他解法,欢迎交流

拜了个拜

目录
相关文章
|
17天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之SQL错误[0A000],通常是什么造成的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
16 1
|
1月前
|
SQL 关系型数据库 MySQL
go 通过sql操作mysql
go 通过sql操作mysql
19 1
|
12天前
|
SQL Java 数据库连接
深入理解SQL中的LEFT JOIN操作
深入理解SQL中的LEFT JOIN操作
|
21天前
|
SQL 分布式计算 前端开发
MaxCompute操作报错合集之SQL脚本设置参数set odps.mapred.reduce.tasks=18;没有生效,是为什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
19天前
|
SQL 大数据
常见大数据面试SQL-每年总成绩都有所提升的学生
一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生
|
24天前
|
SQL 关系型数据库 MySQL
sql面试题库
sql面试题库
|
5天前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
14 0
|
5天前
|
SQL 监控 Java
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
10 0
|
1月前
|
SQL Cloud Native 关系型数据库
云原生数据仓库AnalyticDB操作报错合集之执行sql的进程报错:"unknown connection id",是什么导致的
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
751 3
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在执行SQL时,出现了权限问题。错误代码为odps-0433121,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。