騰訊SQL面試題解析:如何找出連續5天漲幅超過5%的股票
作者:某七年數據開發工程師 | 2025年02月23日
關鍵詞:SQL窗口函數、連續問題、股票分析、騰訊面試題
一、問題背景與難點拆解
在股票量化分析場景中,"連續N天滿足條件"是高頻面試題類型。本題要求在單表stock_data
中,篩選出連續5天以上(含)每日漲幅≥5%的股票,并輸出連續天數及起止日期。其核心難點在于:
- 漲幅計算:需通過時間窗口函數獲取前一日收盤價
- 連續性判斷:如何將離散的日期序列轉化為連續區間
- 性能優化:大數據量下避免全表掃描(如十億級交易記錄)
?? 趣味比喻:這就像在股票市場的馬拉松中,找到那些連續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_rateFROM stock_data
)
技術要點