编写 sql 跟据股票的日K统计股票的周线数据
时间: 2024-05-11 09:18:24 浏览: 136
假设股票的日K数据记录在一个名为 `stock_daily` 的表中,包含以下字段:
- `stock_id`:股票ID
- `date`:日期
- `open_price`:开盘价
- `close_price`:收盘价
- `high_price`:最高价
- `low_price`:最低价
- `volume`:成交量
则可以通过以下 SQL 语句统计股票的周线数据:
```sql
SELECT
stock_id,
DATE_FORMAT(date, '%Y-%U') AS week, -- 使用 DATE_FORMAT 函数将日期转换为年-周格式
MIN(low_price) AS low_price,
MAX(high_price) AS high_price,
SUBSTRING_INDEX(GROUP_CONCAT(open_price ORDER BY date ASC SEPARATOR ','), ',', 1) AS open_price, -- 使用 GROUP_CONCAT 函数将一周内的开盘价拼接成字符串,并取第一个值作为开盘价
SUBSTRING_INDEX(GROUP_CONCAT(close_price ORDER BY date DESC SEPARATOR ','), ',', 1) AS close_price, -- 使用 GROUP_CONCAT 函数将一周内的收盘价拼接成字符串,并取最后一个值作为收盘价
SUM(volume) AS volume
FROM
stock_daily
GROUP BY
stock_id,
week
ORDER BY
stock_id,
week;
```
该语句会将每个股票的日K数据按照周进行聚合,并计算出每周的最低价、最高价、开盘价、收盘价和成交量。
阅读全文