如何解决在SQL中使用max and over时出错
我一直在尝试获取date的最大值,并且我正在使用oracle数据库。它工作得很好,但是突然不起作用。
select max(scn_dtm) over (partition by name,id )-current_date from iv_p_co_iaw_subjects_v1
scn_dtm name id
2020-01-30 BEL-17 14
2012-01-25 BEL-84 030102
2007-01-30 ABC-54 RU10012
2012-01-03 RED-23 D52
更新错误:
SQL Error [50006] [HY000]: Error executing view: Function max is not executable
抱歉,我确实在使用denodo通过查询Oracle数据库来创建视图。
解决方法
这个评论太长了。
此错误不是Oracle错误:
SQL错误[50006] [HY000]:执行视图时出错:函数max无法执行
搜索该错误会弹出有关称为Denodo的工具的页面-Denodo似乎不支持窗口功能。我怀疑基础数据库根本就是Oracle,想知道您是否正在使用不支持窗口功能的MySQL的较早版本。
,至少在我的11g上您写了 works 的查询,尽管有关您的问题下缺少order by
子句的评论提出了不同的建议:
SQL> with iv_p_co_iaw_subjects_v1 (scn_dtm,name,id) as
2 (select date '2020-01-30','bel-17','14' from dual union all
3 select date '2012-01-25','bel-84','030102' from dual union all
4 select date '2007-01-30','abc-54','ru10012' from dual union all
5 select date '2012-01-03','red-23','d52' from dual
6 )
7 select max(scn_dtm) over (partition by name,id ) - current_date
8 from iv_p_co_iaw_subjects_v1;
MAX(SCN_DTM)OVER(PARTITIONBYNAME,ID)-CURRENT_DATE
-------------------------------------------------
-4943,4971
-195,49707
-3122,4971
-3144,4971
SQL>
您说这是一个错误-您为什么期望我们猜哪个?而且,自“突然”发生了什么?也许是导致错误的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。