【发布时间】:2018-09-25 00:46:07
【问题描述】:
所以我试图从给定 2015 年每个月的特定日期的数据集中提取日期、行使价和要价,其中额外的独特限制适用于行使价,我们想要最大的行使价及其相应的要价。例如,在日期 A,我们想要 max(strike price
SELECT currentdate,max(strike),ask
FROM opt
WHERE currentdate between '2015-01-16' and '2015-01-16'
AND T='P'
AND strike <=191.55;
当我在 impala 中运行它时,我遇到了错误:
在没有 Kerberos 身份验证的情况下启动 Impala Shell 错误:AnalysisException:选择列表表达式不是由聚合输出产生的(缺少 GROUP BY 子句?):currentdate
我很抱歉格式错误,对 Stackover 不是很熟悉。
【问题讨论】:
-
该问题不应标记为
impala。任何 SQL 数据库都会出现相同类型的语法错误。学习 SQL,这对你的职业生涯来说是一笔不错的投资…… -
顺便说一句,应该不需要在
strike上使用 10 个不同的过滤器运行 10 个不同的查询 如果 Impala 支持case语法 (这已经很长时间了自从我上次使用该特定工具以来的时间...) > 尝试 10 个不同的列,例如max(case when strike <=191.55 then strike else null end)- 只需一次完整扫描。