SQLITE資料庫中有以下資料如圖:

SQL 語法請益?股價日資料轉月資料

目前會用
select 股票代碼 ,max(高) as 月高 ,min(低) as 月低 , sum( 成交量) as 月成交量 from (SELECT * FroM 日線 where 股票代碼 = 1101 and 日期 between 1020401 and 1020430 )

取得月線中的 最高價 最低價 月總成交量

select 股票代碼, 日期,開 from (SELECT * FroM 日線 where 股票代碼 = 1101 and 日期 between 1020401 and 102043 ) limit 1

取得開盤價

select 股票代碼, 收 as 月收 from (SELECT * FroM 日線 where 股票代碼 = 1101 and 日期 between 1020401 and 1020430 ) order by 日期 desc limit 1

取得收盤價

請問如何組成合月線資總料並放在月線的資料表中呢?

如果有1000檔,請問在SQL中可以跑回圈嗎?還是要把資料放進EXCEL中回圈運算後再放進「月線」資料表中

個人覺得好像可以用 IN (股票代碼),但不確定,因個人自學…

請高手指導

謝謝
select
a.股票代碼
,substr(a.日期開,1,7) as 日期
,substr(a.日期開,8,13) as 開
,a.月高
,a.月低
,substr(a.日期收,8,13) as 收
,a.月成交量
from ( select
股票代碼
,min(日期||開) as 日期開
,max(高) as 月高
,min(低) as 月低
,max(日期||收) as 日期收
,sum( 成交量) as 月成交量
from 日線
where 日期 between 1020401 and 1020430
group by 1 ) A

感謝!我等下來試試,

不過我自己是有些問題?

就是有些股票是月中上市櫃

這樣會不會組合不起來!
好神!

真的成功了!

可以請教幾個問題嗎?


min(日期||開) as 日期開
max(日期||收) as 日期收

上面的(日期||開)是什麼意思!不好意思,沒有用過
group by 1

group by後面不是要接一個欄位嗎?

為什麼是1呢?

謝謝

原來幾秒可以完成的事,我還在想該怎麼辦?

了解!知道怎麼用了

min(日期||開)

就是先將日期與開串在一起成為一個新值,再從中找min

substr(a.日期開,1,7)

就是將串接的日期開,取從前面取7位數 as 日期

group by 1

1是指第一個欄位簡寫,也就是 股票代碼

如果在配上insert into就可以將查詢到的資料放進月線資料庫中

真是感謝

又學會字串用法

與簡寫
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!