我正在尝试从 SQL 中查询一些数据,以便对某些列求和,从另一个表中获取其他列的最大值和相应的值。例如,
|表1|
|id| |shares| |date|
1 100 05/13/16
2 200 05/15/16
3 300 06/12/16
4 400 02/22/16
|表2|
|id| |price|
1 21.2
2 20.2
3 19.1
4 21.3
我希望我的输出是:
|shares| |date| |price|
1000 06/12/16 19.1
股票已经汇总,日期为max(date),价格为对应max(date)时的价格。
到目前为止,我有:
select
id, stock, side, exchange,
max(startdate), max(enddate),
sum(shares), sum(execution_price * shares) / sum(shares),
max(limitprice), max(price)
from
table1 t1
inner join
table2 t2 on t2.id = t1.id
where
location = 'CHICAGO'
and startdate > '1/1/2016'
and order_type = 'limit'
group by
id, stock, side, exchange
但是,这会返回:
|shares| |date| |price|
1000 06/12/16 21.3
这不是最大值(日期)的相应价格。