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

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

技术要点

相关文章:

  • 简单又强大的Zustand,为啥不自己手写一个呢
  • LeetCode 热题 100 560. 和为 K 的子数组
  • 侯捷 C++ 课程学习笔记:内存管理的每一层面
  • Linux提权之passwd提权(七)
  • AI助力小微企业技术开发规范化管理 | 杂谈
  • Python爬虫处理网页中的动态内容
  • rust之Tokio学习1
  • 【GDB】 断点的相关设置
  • python turtle模块有哪几种命令
  • Web自动化之Selenium控制已经打开的浏览器(Chrome,Edge)
  • DPVS-4: dpvs.conf配置文件解读
  • 开源机器学习框架
  • 搭建Docker Harbor仓库
  • 【MySQL篇】持久化和非持久化统计信息的深度剖析(含analyze命令和mysqlcheck工具两种收集方式)
  • Leetcode350:两个数组的交集 II
  • 高通Camera点亮3——Camera Module
  • 记录此刻:历时两月,初步实现基于FPGA的NVMe SSD固态硬盘存储控制器设计!
  • SpringBoot+Mybatis-Plus实现动态数据源
  • Deepseek-强化学习算法(通俗易懂版)
  • 【带你 langchain 双排系列教程】9.LangChain基于RAG 实现文档问答:从入门到实战
  • 有后台的网站模板/网络销售怎么学
  • 做筹款的网站需要什么资质/天津百度关键词推广公司
  • 网站推广广告词大全集/网络营销成功案例介绍
  • 建设简易电子商务网站流程图/100%能上热门的文案
  • 网站做推广被禁止访问了/百度权重怎么查询
  • 建设手机银行官方网站/现在有哪些网址