Oracle 条件订单平均利润的计算

Oracle 条件订单平均利润的计算,oracle,Oracle,我有下表 Order_lines(`Order line`,`order number`,`price`,`sale`,`profit`,`order item`) 某些订单号包含多个项目 我需要计算超过5行项目的订单的平均利润 我的问题是这样的: select ROUND(profit/count(item),0) Average Profit from order_lines; having count(item)>5; 但它不起作用。有人能帮我吗?非常感谢你 如今,SQL有一点程

我有下表

Order_lines(`Order line`,`order number`,`price`,`sale`,`profit`,`order item`)
某些订单号包含多个项目

我需要计算超过5行项目的订单的平均利润

我的问题是这样的:

select ROUND(profit/count(item),0) Average Profit
from order_lines;
having count(item)>5;

但它不起作用。有人能帮我吗?非常感谢你

如今,SQL有一点程序化的成分——允许您将问题分解为多个更小的步骤

尝试以下两步方法:

SELECT AVG (profit)
FROM   (SELECT SUM (profit) profit
        FROM   order_lines
        GROUP BY order_number
        HAVING COUNT (*) > 5);

首先,我们得到一个订单列表,上面有>5行以及每行的利润,然后我们平均这些利润。

请参见:我的SQL开发人员stills说ORA-00933:SQL命令没有正确地以您的输入结束,您认为我需要用AVG命令进一步澄清吗?它在我的系统上运行。发布您正在运行的给出错误的SQL。另外,请注意,您需要按订单号分组,而不是按订单行分组。对不起。我已经更正了我的答案。是的,由于你的更新,它现在可以工作了!然而,我的指导老师需要每个订单超过5行项目的平均利润,答案应该是3行,但在您的帮助下,我只得到1行。我怎样才能解决这个问题?非常感谢!表中有3个订单的行项目超过5个,我需要一个查询来找到每个订单的平均利润。你的指导老师?啊。。请自己做作业。我给你最后一个提示:这是一个比你第一次发布的问题更简单的问题,而且可以一步完成。