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

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

拜了个拜

目录
相关文章
|
5月前
|
SQL 数据库
SQL面试50题------(初始化工作、建立表格)
这篇文章提供了SQL面试中可能会遇到的50道题目的建表和初始化数据的SQL脚本,包括学生、教师、课程和成绩表的创建及数据插入示例。
SQL面试50题------(初始化工作、建立表格)
|
5月前
|
SQL
sql面试50题------(1-10)
这篇文章提供了SQL面试中的前10个问题及其解决方案,包括查询特定条件下的学生信息、教师信息和课程成绩等。
sql面试50题------(1-10)
用好PDCA循环法,轻松slay面试
如何在面试中完美发挥?可以借鉴PDCA循环法。P(Plan):规划面试策略和简历;D(Do):准备面试技巧、刷题等;C(Check):通过模拟面试提升表达能力;A(Act):复盘面试问题,查漏补缺,避免重复错误。这一科学方法有助于系统性地提升面试表现。
|
2月前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
3月前
|
C语言
经典面试题:嵌入式系统中经常要用到无限循环,怎么样用C编写死循环呢
在嵌入式系统开发中,无限循环常用于持续运行特定任务或监听事件。使用C语言实现死循环很简单,可以通过`while(1)`或`for(;;)`的结构来编写。例如:`while (1) { /* 循环体代码 */ }`,这种写法明确简洁,适用于需要持续执行的任务或等待中断的场景。
|
5月前
|
SQL
sql面试50题------(11-20)
这篇文章提供了SQL面试中的50道题目,其中详细解释了11至20题,包括查询与学号为“01”的学生所学课程相同的学生信息、不及格课程的学生信息、各科成绩统计以及学生的总成绩排名等问题的SQL查询语句。
|
5月前
|
SQL
sql面试50题------(21-30)
这篇文章是SQL面试题的21至30题,涵盖了查询不同老师所教课程的平均分、按分数段统计各科成绩人数、查询学生平均成绩及其名次等问题的SQL查询语句。
sql面试50题------(21-30)
|
5月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
54 5
|
6月前
|
SQL 分布式计算 MaxCompute
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
|
6月前
|
存储 SQL 索引
面试题MySQL问题之使用SQL语句创建一个索引如何解决
面试题MySQL问题之使用SQL语句创建一个索引如何解决
62 1