2013-04-09 107 views
1

我已經瀏覽了這個論壇和其他人的很多帖子,我找不到與我需要的類似的解決方案。MySQL Count,Sum,然後除數

我寫了幾個簡單的查詢,這樣我們就可以從我們的數據庫中的一些財務統計資料...這一次不過,我似乎無法敲定...

從這個查詢,我從他們向我們提供的每個InsuranceCarrier和NumberOfOrders獲得我們的TotalRevenue ...但是在這個特定的查詢中,我需要它通過NumberOfOrders劃分TotalRevenue,並給出AverageTicket爲「ORDER BY」,否則echo'd列表爲'噸正確的順序,即使我可以使除法計算後查詢...

這是我的查詢...

SELECT OrderTickets.InsuranceCarrierID, 
     COUNT(OrderTickets.OrderTicketPayoutAmount) as NumberOfOrders, 
     SUM(OrderTickets.OrderTicketPayoutAmount) as TotalRevenue, 
     InsuranceCarriers.InsuranceCarrier 
    FROM OrderTickets 
    LEFT JOIN InsuranceCarriers 
      ON OrderTickets.InsuranceCarrierID = InsuranceCarriers.InsuranceCarrierID 
GROUP BY OrderTickets.InsuranceCarrierID 
ORDER BY TotalRevenue DESC 

我試過了一些改動,但沒有成功,我沒有發佈它,因爲它不起作用,但如果有人想看我的嘗試,我會很樂意發佈它。

回答

2

使用AVG()像這樣:

SELECT OrderTickets.InsuranceCarrierID, 
     COUNT(OrderTickets.OrderTicketPayoutAmount) as NumberOfOrders, 
     SUM(OrderTickets.OrderTicketPayoutAmount) as TotalRevenue, 
     AVG(OrderTickets.OrderTicketPayoutAmount) as AverageRevenue, 
     InsuranceCarriers.InsuranceCarrier 
    FROM OrderTickets 
    LEFT JOIN InsuranceCarriers 
      ON OrderTickets.InsuranceCarrierID = InsuranceCarriers.InsuranceCarrierID 
GROUP BY OrderTickets.InsuranceCarrierID 
ORDER BY AverageRevenue DESC 
+0

謝謝,非常完美。 – Mike 2013-04-09 22:57:28