腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票

腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票

作者:某七年数据开发工程师 | 2025年02月23日
关键词:SQL窗口函数、连续问题、股票分析、腾讯面试题


一、问题背景与难点拆解

在股票量化分析场景中,"连续N天满足条件"是高频面试题类型。本题要求在单表stock_data中,筛选出连续5天以上(含)每日涨幅≥5%的股票,并输出连续天数及起止日期。其核心难点在于:

  1. 涨幅计算:需通过时间窗口函数获取前一日收盘价
  2. 连续性判断:如何将离散的日期序列转化为连续区间
  3. 性能优化:大数据量下避免全表扫描(如十亿级交易记录)

💡 趣味比喻:这就像在股票市场的马拉松中,找到那些连续5天都在"冲刺"的选手,而不仅仅是偶尔爆发。


二、解题思路与技术实现

1. 数据预处理:计算每日涨幅

WITH daily_return AS (
  SELECT 
    stock_code,
    trade_date,
    closing_price,
    -- 计算当日涨幅(前一日为基准)
    ROUND(closing_price / LAG(closing_price) OVER (
      PARTITION BY stock_code 
      ORDER BY trade_date
    ) - 1,4) AS return_rate
  FROM stock_data
)

技术要点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值