首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00920:使用IN运算符时无效的关系运算符

ORA-00920:使用IN运算符时无效的关系运算符
EN

Stack Overflow用户
提问于 2019-10-20 14:18:25
回答 3查看 297关注 0票数 1

我有一张桌子col,我有:

代码语言:javascript
复制
select * from offc.col;

我使用按年查询ans dept_id wise返回了一些数据:

代码语言:javascript
复制
 SELECT dept_id, 
       year, 
       Max(marks) marks 
FROM   offc.col 
GROUP  BY dept_id, 
          year 
ORDER  BY dept_id, 
          year 

我得到的数据是:

这里没有问题,因为我的sql正在运行right.So,我需要提取col表的所有信息,所以我将子查询用作:

代码语言:javascript
复制
SELECT * 
FROM   offc.col 
WHERE  ( dept_id, year, marks ) IN (SELECT dept_id, 
                                           year, 
                                           Max(marks) marks 
                                    FROM   offc.col 
                                    GROUP  BY dept_id, 
                                              year 
                                    ORDER  BY dept_id, 
                                              year); 

但是,我犯了错误,因为:

代码语言:javascript
复制
ORA-00920: invalid relational operator 

我也在其他页面搜索了这个错误,但是在我的例子中,我发现这些错误作为error.But的括号错了,我不知道这里发生了什么?

EN

Stack Overflow用户

发布于 2019-10-20 14:28:34

我建议使用dense_rank分析函数,因为如果两个部门在同一年有相同的分数,它们可以返回(您当前的逻辑与此相同)。

Row_number只会给你一个随机记录,如果两个部门在同一年有相同的分数。

代码语言:javascript
复制
select *
from (
    select 
        c.*, 
        dense_rank() over(partition by dept_id, year order by marks desc nulls last) as dr
    from offc.col c
) x
where dr = 1
order by dept_id, year 

另外,您的查询是正确的,只需从其中移除顺序即可。

代码语言:javascript
复制
SELECT * 
FROM   offc.col 
WHERE  ( dept_id, year, marks ) IN (SELECT dept_id, 
                                           year, 
                                           Max(marks) marks 
                                    FROM   offc.col 
                                    GROUP  BY dept_id, 
                                              year 
                                    -- ORDER  BY dept_id,                                              
                                -- year
); 

演示的错误与order by和工作良好,没有order by

干杯!!

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58473905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档