[英]MYSQL, grouping with multiple columns
我有兩張桌子。 示例數據查詢:cmadjprice:
select symbol,close,timestamp from cmadjprice;
ABCD,815.9,2014-10-31
ABCD,808.85,2014-11-03
ABCD,797.4,2014-11-05
ABCD,776.55,2014-11-07
ABCD,800.85,2014-11-10
ABCD,808.9,2014-11-11
ABCD,826.8,2014-11-12
ABCD,856.45,2014-11-13
ABCD,856.65,2014-11-14
BB03表輸出示例查詢
select symbol,enter_dt,enter_price,exit_dt,exit_price from bb03 ;
ABCD,2014-10-31,815.90,2018-07-27,1073.60
我正在尋找同一日期的最高收盤價。
select a.symbol, max(a.close) ,a.timestamp from cmadjprice a
inner join BB03 b on a.symbol = b.symbol
where a.timestamp between b.enter_dt and b.exit_dt
group by a.symbol,a.timestamp;
沒有得到輸出? 請幫助解決這個預期輸出
ABCD,2014-10-31,815.90,2018-07-27,1073.60,856.65,2014-11-14;
試試下面:
select a.symbol, max(cast(a.close as DECIMAL(5,2))) from cmadjprice a
inner join BB03 b on a.symbol = b.symbol
where a.timestamp between b.enter_dt and b.exit_dt
group by a.symbol;
我認為這就是你需要的:
請注意,如果最大收盤價在與給定交易品種相關的時間戳序列中出現不止一次,這可能會返回多個記錄
select c.symbol, c.maxval, d.timestamp from
(
select
a.symbol,
max(a.close) as maxval
from
cmadjprice a
inner join BB03 b
on a.symbol = b.symbol
where a.timestamp between b.enter_dt and b.exit_dt
group by a.symbol
) c
inner join
cmadjprice d
on c.symbol = d.symbol and c.maxval = d.close
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.