当前位置: 首页 > article >正文

腾讯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
)

技术要点


http://www.kler.cn/a/558474.html

相关文章:

  • LSTM 与随机森林的对比
  • LeetCode216
  • Python 的 Lambda 函数及应用场景
  • Stm32中SysTick 定时器的使用
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_array_init 函数
  • 深度学习课程作业(Week1)
  • Websocket——心跳检测
  • 【愚公系列】《Python网络爬虫从入门到精通》027-初识Pandas和Series对象
  • 【Bert】自然语言(Language Model)入门之---Bert
  • C++学习笔记第一天(vs工程创建+基本知识)
  • 基于ffmpeg+openGL ES实现的视频编辑工具-环境搭建(三)
  • C++ 模板初阶
  • Cesium开发--自定义Primitive实现3D Gaussian Splatting渲染
  • 学习数据结构(11)二叉树(堆)下
  • 【目标检测】【YOLOv12】YOLOv12:Attention-Centric Real-Time Object Detectors
  • Jenkins 视图(View)
  • Python爬虫系列教程之第十三篇:构建高可用爬虫系统 —— 混合架构与自动化监控
  • TCP...
  • 量化自学 - 金融理论与python - Net Present Value 净现值
  • 智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践