MySQL从近一个月的股票行情数据中查找连续上涨的股票,按连续上涨天数倒序排序
时间: 2024-09-08 20:04:57 浏览: 60
关系型数据库+Mysql+查询用户连续登陆天数+数据统计
要实现这个需求,我们需要对MySQL数据库中的股票行情数据表进行查询。假设我们有一个名为`stock_trends`的表,其中包含了股票的日期`date`和当天的收盘价`closing_price`。以下是一个可能的SQL查询语句示例:
```sql
SELECT
symbol, -- 假设股票代码的字段是symbol
COUNT(*) AS consecutive_days上涨,
MIN(date) AS start_date,
MAX(date) AS end_date
FROM (
SELECT
symbol,
date,
closing_price,
closing_price > LAG(closing_price) OVER (PARTITION BY symbol ORDER BY date) AS is上涨
FROM stock_trends
) AS上涨确认
WHERE is上涨 = 1
GROUP BY symbol, is上涨
HAVING COUNT(*) >= 2 -- 这里假设连续上涨至少需要2天
ORDER BY COUNT(*) DESC; -- 按连续上涨天数倒序排序
```
在这个查询中,我们首先使用了窗口函数`LAG`来比较相邻两天的收盘价,以此确定哪些天是连续上涨的。如果当前天的收盘价高于前一天的收盘价,那么`is上涨`字段就会标记为1(真)。然后我们对这些连续上涨的记录进行分组,并计算每个连续上涨序列的天数。最后,我们按上涨天数降序排列结果。
阅读全文