踏踏实实练习HSQ--day01

简介: 踏踏实实练习HSQ--day01

查询连续登陆3天以上用户(字节面试题)

image.png

create table userinfo2(
    `id` string,
    `date` string
)
row format delimited fields terminated by '\t';
insert overwrite table userinfo2
values ('1','2024-01-01 00:00:00'),
       ('1','2024-01-02 00:00:00'),
       ('1','2024-01-03 00:00:00'),
        ('2','2024-02-01 00:00:00'),
       ('2','2024-02-02 00:00:00'),
       ('3','2024-03-04 00:00:00'),
       ('3','2024-03-05 00:00:00'),
       ('3','2024-03-06 00:00:00'),
        ('3','2024-03-07 00:00:00');

第一步去重

select id,substring(`date`,1,10)
from userinfo2
group by id,substring(`date`,1,10)
去重能用group by,别用distinct,效率太低

image.png

select distinct id
    from
(select id,
       date_add(data,2) as nextday,
       lead(data,2,0) over (partition by id order by data) as nextorder
    from
(select id,substring(`date`,1,10) as data
from userinfo2
group by id,substring(`date`,1,10))t1)t2
where nextday=nextorder

image.png

image.png

select id,date1,count(*) as day_cnt
    from
(select id,data,
       date_add(data,-row_number() over (partition by id order by data))
as date1
    from
(select id,substring(`date`,1,10) as data
from userinfo2
group by id,substring(`date`,1,10))t1)t2
group by id,date1
having count(*)>3

image.png

查询连续登陆最大天数用户(字节面试题)

select max(day_cnt)
    from
(
    select
       id,date1,
      count(*) as day_cnt
       from
(select id,data,date_add(data,-row_number() over (partition by id order by data)) as date1
    from
(select id,substring(`date`,1,10) as data
from userinfo2
group by id,substring(`date`,1,10))t1)t2
group by id,date1
)t3

image.png

coalesce


波峰波谷

image.png

image.png

create table userinfo3(
    `id` string,
    `ds` string,
    `price` string
)
row format delimited fields terminated by '\t';

insert overwrite table userinfo3
values ('1','2024-01-01','10001'),
       ('1','2024-01-03','1001'),
       ('1','2024-01-02','10002'),
       ('1','2024-01-04','999'),
       ('1','2024-01-05','1002'),
       ('1','2024-01-06','1003'),
       ('1','2024-01-07','1004'),
       ('1','2024-01-08','998'),
         ('1','2024-01-09','997'),
        ('1','2024-01-10','996'),
        ('2','2024-01-01','10001'),
       ('2','2024-01-02','10002'),
        ('2','2024-01-03','10003'),
       ('2','2024-01-04','10002'),
        ('2','2024-01-05','1002'),
          ('2','2024-01-06','1003'),
       ('2','2024-01-07','1004'),
       ('2','2024-01-08','998'),
         ('2','2024-01-09','997'),
        ('2','2024-01-10','996');

偏移量函数:lag

语法:lag(col,n,default_val)

返回值:字段类型

说明:往前第n行数据。

偏移量函数:lead

语法:lead(col,n, default_val)

返回值:字段类型

说明:往后第n行数据。


select
id,ds,price,nvl( case when price>lag_price and price >lea_price then '波峰'
 when price<lag_price and price<lea_price then '波谷' end,0 )as price_type
       from
(select id,price,ds
,lag(price,1,null) over (partition by id order by  ds) as lag_price,
       lead(price,1,null) over (partition by id order by ds) as lea_price
from userinfo3)t1

image.png

目录
打赏
0
0
1
0
64
分享
相关文章
Apache Doris 创始人:何为“现代化”的数据仓库?
3.0 版本是 Apache Doris 研发路程中的重要里程碑,他将这一进展总结为“实时之路”、“统一之路”和“弹性之路”,详细介绍了所对应的核心特性的设计思考与应用价值,揭晓了 2025 年社区发展蓝图
Apache Doris 创始人:何为“现代化”的数据仓库?
了解Hive 工作原理:Hive 是如何工作的?
Apache Hive 是一个建立在 Hadoop 之上的分布式数据仓库系统,提供类 SQL 查询语言 HiveQL,便于用户进行大规模数据分析。Hive Metastore(HMS)是其关键组件,用于存储表和分区的元数据。Hive 将 SQL 查询转换为 MapReduce 任务执行,适合处理 PB 级数据,但查询效率较低,不适合实时分析。优点包括易于使用、可扩展性强;缺点则在于表达能力有限和不支持实时查询。
133 3
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
169 3
【赵渝强老师】Hive的体系架构
Hive是基于Hadoop的数据仓库平台,提供SQL-like的HQL语言进行数据分析,无需编写复杂的Java代码。Hive支持丰富的数据模型,可将SQL语句转换为MapReduce任务在Yarn上运行,底层依赖HDFS存储数据。Hive可通过CLI、JDBC和Web界面执行SQL查询。
310 2
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
139 1
【数据新纪元】Apache Doris:重塑实时分析性能,解锁大数据处理新速度,引爆数据价值潜能!
【9月更文挑战第5天】Apache Doris以其卓越的性能、灵活的架构和高效的数据处理能力,正在重塑实时分析的性能极限,解锁大数据处理的新速度,引爆数据价值的无限潜能。在未来的发展中,我们有理由相信Apache Doris将继续引领数据处理的潮流,为企业提供更快速、更准确、更智能的数据洞察和决策支持。让我们携手并进,共同探索数据新纪元的无限可能!
334 11
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
250 0
阿里云oss备份网站数据的详细步骤
该教程指导如何使用阿里云OSS备份网站数据。首先,注册阿里云账号并购买40GB的OSS存储空间。创建Bucket,选择与服务器相同的区域和私有权限。安装阿里云OSS插件,获取AccessKey信息。在宝塔面板中设置计划任务进行网站或数据库备份,选择内网域名以节省流量。备份完成后,通过文件管理器检查OSS中是否有备份文件。下载备份文件需点击文件名,然后打开文件URL。
552 5
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问