股票 SQL

insert into stock.dm_stock_trade_total_result

select

'20230928'

,ts_code

,max(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) = to_date('2023-09-28') then close end)

,min(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',365)) then cast(close as float) end)

,max(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',365)) then cast(close as float) end)

,min(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',183)) then cast(close as float) end)

,max(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',183)) then cast(close as float) end)

,min(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',31)) then cast(close as float) end)

,max(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',31)) then cast(close as float) end)

,min(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',7)) then cast(close as float) end)

,max(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',7)) then cast(close as float) end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',365)) then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',365)) and status = '1' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',365)) and status = '0' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',183)) then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',183)) and status = '1' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',183)) and status = '0' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',31)) then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',31)) and status = '1' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',31)) and status = '0' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',7)) then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',7)) and status = '1' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',7)) and status = '0' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',14)) then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',14)) and status = '1' then 1 end)

,sum(case when to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) <= to_date('2023-09-28') and to_date(concat(substr(trade_date,1,4),'-',substr(trade_date,5,2),'-',substr(trade_date,7,2))) >= to_date(date_sub('2023-09-28',14)) and status = '0' then 1 end)

,'20230928'

from stock.dm_stock_trade_d

group by ts_code

select * from stock.dm_stock_trade_total_result

--------------------------------两年

select

ts_code

,max(case when substr(trade_date,1,6) = '202201' then up end) 202201_up

,max(case when substr(trade_date,1,6) = '202202' then up end) 202202_up

,max(case when substr(trade_date,1,6) = '202203' then up end) 202203_up

,max(case when substr(trade_date,1,6) = '202204' then up end) 202204_up

,max(case when substr(trade_date,1,6) = '202205' then up end) 202205_up

,max(case when substr(trade_date,1,6) = '202206' then up end) 202206_up

,max(case when substr(trade_date,1,6) = '202207' then up end) 202207_up

,max(case when substr(trade_date,1,6) = '202208' then up end) 202208_up

,max(case when substr(trade_date,1,6) = '202209' then up end) 202209_up

,max(case when substr(trade_date,1,6) = '202210' then up end) 202210_up

,max(case when substr(trade_date,1,6) = '202211' then up end) 202211_up

,max(case when substr(trade_date,1,6) = '202212' then up end) 202212_up

,max(case when substr(trade_date,1,6) = '202301' then up end) 202301_up

,max(case when substr(trade_date,1,6) = '202302' then up end) 202302_up

,max(case when substr(trade_date,1,6) = '202303' then up end) 202303_up

,max(case when substr(trade_date,1,6) = '202304' then up end) 202304_up

,max(case when substr(trade_date,1,6) = '202305' then up end) 202305_up

,max(case when substr(trade_date,1,6) = '202306' then up end) 202306_up

,max(case when substr(trade_date,1,6) = '202307' then up end) 202307_up

,max(case when substr(trade_date,1,6) = '202308' then up end) 202308_up

,max(case when substr(trade_date,1,6) = '202309' then up end) 202309_up

from (

select

substr(trade_date,1,6) trade_date

,ts_code

,sum(case when status = 0 then 1 end) down

,sum(case when status = 1 then 1 end) up

from stock.dm_stock_trade_d where ts_code='300730.SZ'

group by substr(trade_date,1,6),ts_code

) t

group by ts_code


select

ts_code

,max(case when substr(trade_date,1,6) = '202301' then down end) 202301_down

,max(case when substr(trade_date,1,6) = '202301' then up end) 202301_up

,max(case when substr(trade_date,1,6) = '202302' then down end) 202302_down

,max(case when substr(trade_date,1,6) = '202302' then up end) 202302_up

,max(case when substr(trade_date,1,6) = '202303' then down end) 202303_down

,max(case when substr(trade_date,1,6) = '202303' then up end) 202303_up

,max(case when substr(trade_date,1,6) = '202304' then down end) 202304_down

,max(case when substr(trade_date,1,6) = '202304' then up end) 202304_up

,max(case when substr(trade_date,1,6) = '202305' then down end) 202305_down

,max(case when substr(trade_date,1,6) = '202305' then up end) 202305_up

,max(case when substr(trade_date,1,6) = '202306' then down end) 202306_down

,max(case when substr(trade_date,1,6) = '202306' then up end) 202306_up

,max(case when substr(trade_date,1,6) = '202307' then down end) 202307_down

,max(case when substr(trade_date,1,6) = '202307' then up end) 202307_up

,max(case when substr(trade_date,1,6) = '202308' then down end) 202308_down

,max(case when substr(trade_date,1,6) = '202308' then up end) 202308_up

from (

select

substr(trade_date,1,6) trade_date

,ts_code

,sum(case when status = 0 then 1 end) down

,sum(case when status = 1 then 1 end) up

from stock.dm_stock_trade_d where trade_date >= '20230101' and trade_date <= '20231231' --and ts_code='603008.SH'

group by substr(trade_date,1,6),ts_code

) t

group by ts_code

select

ts_code

,sum(case when status = 0 then 1 end) down

,sum(case when status = 1 then 1 end) up

from stock.dm_stock_trade_d where trade_date >= '20230101' and trade_date <= '20231231'

group by ts_code

相关推荐
杨杨杨大侠27 分钟前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
SL_staff27 分钟前
私有化低代码运维三重雷区:JVS开源栈中的Kafka/ES/RabbitMQ治理实践
java·低代码·全栈
yuniko-n28 分钟前
【算法】约瑟夫环问题
java·算法
javaDocker34 分钟前
1800 亿科技投入砸下去,多数机构平的只是服务器,不是能力
运维·服务器·人工智能·科技·研发效能·金融科技
郝亚军37 分钟前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构
服务器硬件项目经理1 小时前
超节点修仙录 目 录
服务器·硬件工程·硬件
譕痕1 小时前
stripe 实例
java·开发语言·stripe·checksession
墨子夕1 小时前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(前言篇)
java·开发语言·设计模式
骇客野人1 小时前
Linux 全套实操方案(含目录详解、文件传输、日志、文件规范、环境变量、Java 应用部署运维)
java·linux·运维
时间的情敌1 小时前
《回顾 2018 前端:Vue2 成熟期,Webpack4 发布,PWA 大火》
前端