php 做的应用网站,基于构件的软件开发流程,建设一个旅游网站毕业设计,昆明城乡和住房建设局网站来源#xff1a;字节今日头条 目录 1 题目2 建表语句3 题解 1 题目 有如下数据#xff0c;记录每天每只股票的收盘价格#xff0c;请查出每只股票的波峰和波谷的日期和价格#xff1b; 波峰定义#xff1a;股票价格高于前一天和后一天价格时为波峰 波谷定义#xff1a;股… 来源字节今日头条 目录 1 题目2 建表语句3 题解 1 题目 有如下数据记录每天每只股票的收盘价格请查出每只股票的波峰和波谷的日期和价格 波峰定义股票价格高于前一天和后一天价格时为波峰 波谷定义股票价格低于前一天和后一天价格是为波谷 2 建表语句 CREATE TABLE t_stock_test (ts_code VARCHAR(20) COMMENT 股票代码,trade_date VARCHAR(20) COMMENT 交易日期,close FLOAT COMMENT 收盘价
);
INSERT INTO t_stock_test VALUES
(000001.SZ,20220104,16.66),
(000002.SZ,20220104,20.49),
(000001.SZ,20220105,17.15),
(000002.SZ,20220105,21.17),
(000001.SZ,20220106,17.12),
(000002.SZ,20220106,21.05),
(000001.SZ,20220107,17.2),
(000002.SZ,20220107,21.89),
(000001.SZ,20220110,17.19),
(000002.SZ,20220110,22.16),
(000001.SZ,20220111,17.41),
(000002.SZ,20220111,22.3),
(000001.SZ,20220112,17),
(000002.SZ,20220112,22.05),
(000001.SZ,20220113,16.98),
(000002.SZ,20220113,21.53),
(000001.SZ,20220114,16.33),
(000002.SZ,20220114,20.7),
(000001.SZ,20220117,16.22),
(000002.SZ,20220117,20.87);样例结果 3 题解 需要比较当天价格与前一天、后一天的价格进行比较常规想法为进行关联股票ID相等、日期为当天日期减1为前一天价格日期为当天价格加1为后一天价格然后进行计算简化方法为使用 lag 和 lead 函数可以避免进行表关联 lag()函数 LAG(col,n,DEFAULT) 用于统计窗口内往上第 n 行。参数1为列名参数2为往上第 n 行可选默认为1参数3为默认值当往上第n行为NULL时候取默认值如不指定则为NULL lead()函数 LEAD(col,n,DEFAULT) 用于统计窗口内往下第 n 行。参数1为列名参数2为往下第 n 行可选默认为1参数3为默认值当往下第n行为NULL时候取默认值如不指定则为NULL select ts_code,trade_date,case when close last_close and closenext_close then 波峰 else 波谷 end as type
from
(select*,lag(close,1)over(partition by ts_code order by trade_date) last_close,lead(close,1)over(partition by ts_code order by trade_date) next_close
from t_stock_test)t
where (close last_close and closenext_close)
or (close last_close and closenext_close);