【发布时间】:2020-10-02 22:32:33
【问题描述】:
我正在收集报价数据并选择 opt_ticker 和 quoteTimeStamp 作为主键,以便我可以随时间存储唯一的报价。我现在想创建一个视图,我可以在其中看到每个 opt_ticker 的最新报价(数据库还有其他带有唯一报价的 opt_ticker)。基本上想查看每只股票/期权的最新报价。
在上面的示例中,我想获取最后一行,因为它是该特定合约的最新时间戳。
我认为这个查询可以解决问题,但 mysql 抱怨我需要进行分组。
select symbol,opt_ticker,ask,bid,exp,strike,type,max(quoteTimeStamp)
from optionquotes
group by opt_ticker
21:36:42 select symbol,opt_ticker,ask,bid,exp,strike,type,max(quoteTimeStamp) from optionquotes group by opt_ticker,symbol LIMIT 0, 1000 Error Code: 1055. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'od2.optionquotes.ask' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.000 sec
如果有帮助,这里是我的服务器信息
Server
Product: (Ubuntu)
Version: 5.7.30-0ubuntu0.16.04.1
Connector
Version: C++ 8.0.20
这听起来很容易,但我很难弄清楚这一点,提前谢谢你。
【问题讨论】:
标签: mysql sql innodb groupwise-maximum