【问题标题】:Oracle return highest value of countOracle 返回计数的最高值
【发布时间】:2021-01-14 18:00:27
【问题描述】:

为清晰起见进行了编辑

所以我正在使用 Oracle SQL Developer 并设置了一个相当基本的数据库。我正在尝试计算两个合并列的重复总数并返回数量最多的字段。

我使用的是 Oracle IDE 19.2.1。

这是我目前所拥有的:

select
    customer_x_coord, customer_y_coord, count(*) as total_in_grid

from 
    customers
        
group by
    customer_x_coord,
    customer_y_coord

order by total_in_grid desc;

这将返回最多的重复项作为输出的第一行。我想我可以只输入“仅获取前 1 行;”在查询的底部:

select
    customer_x_coord, customer_y_coord, count(*) as total_in_grid

from 
    customers
        
group by
    customer_x_coord,
    customer_y_coord

order by total_in_grid desc

fetch first 1 rows only;

这导致了以下错误:“SQL 命令未正确结束”。有人能解释一下是什么原因造成的吗?

只有在有一个明确的最高值时,如果有多个具有相同的值,仅取回第一行是不准确的,那么仅获取第一行才有效。有人可以为我指出一个更好的解决方案吗?

【问题讨论】:

    标签: sql database oracle


    【解决方案1】:

    也许是分号。试试:

    . . . 
    order by total_in_grid desc
    fetch first 1 row only
    

    如果这不起作用,那么您可能使用的是旧版本的 Oracle。您可以使用包含顺序的子查询

    select t.*
    from (<your query here>
         ) t
    where rownum = 1;
    

    【讨论】:

    • 不幸的是,这不起作用。我正在使用 Oracle 19.2.1
    • @Cyreaver 。 . .删除分号并使用fetch first 1 row only 应该可以在该版本中使用。
    猜你喜欢
    • 2018-07-18
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    相关资源
    最近更新 更多