2017-10-16 52 views
-2

的平均利潤我有以下表計數條件定單

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; 

但它不工作。任何人都可以請幫助我嗎?非常感謝!!

+1

參見:[?我爲什麼要提供什麼,在我看來是一個非常簡單的SQL查詢的MCVE(https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an -mcve換什麼,似乎對我將要-A-極簡單的SQL查詢) – Strawberry

回答

0

如今,SQL有一點一個程序組件,它的 - 讓你打破一個問題分解成多個更小的步驟。

試試這個兩步走的方法:

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

首先,我們得到的是具有> 5線,在每個利潤的訂單列表,然後我們平均這些利潤。

+0

我的SQL Developer的劇照說:ORA-00933:SQL命令未正確使用您的項目結束了,你覺得我需要使用AVG命令進一步闡明? –

+0

它運行我的系統上。發佈您正在運行的錯誤的_exact_ SQL。另外,請注意,您需要按order_number進行分組,而不是order_line。對不起。我在我的回答中更正了。 –

+0

是現在的工作感謝您的更新!然而,我的教練需要每個訂單的平均利潤超過5行項目,答案應該是3行,但在您的幫助下我只能得到1行。我怎樣才能解決這個問題?非常感謝! –