[英]oracle - sum on a subquery?
想知道是否有人可以幫助我理解如何將單列的總和,即將成本列表匯總為一個總成本。
我一直在研究這個問題,我想我的理解是正確的,我需要對查詢求和,將其視為子查詢。 但是我運氣不太好-我需要給子查詢一個別名,還是直接將查詢包裝成一個總和?
這是我要總結的有效查詢,為清晰起見,我對求和的所有嘗試都省略了!
SELECT TICKET_TYPE.PRICE AS TOTALSALES, RESERVATION.RESERVATION_ID,
CINEMA.LOCATION, PERFORMANCE.PERFORMANCE_DATE
FROM RESERVATION, TICKET, TICKET_TYPE, CINEMA, PERFORMANCE
WHERE TICKET_TYPE.TICKET_TYPE_ID = TICKET.TICKET_TYPE_ID
AND TICKET.RESERVATION_ID = RESERVATION.RESERVATION_ID
AND RESERVATION.PERFORMANCE_ID = PERFORMANCE.PERFORMANCE_ID
AND CINEMA.LOCATION = 'sometown'
AND PERFORMANCE.PERFORMANCE_DATE = to_date('01/03/2009','DD/MM/yyyy');
一些數據...
TOTALSALES RESERVATION_ID LOCATION PERFORMANCE_DATE
2.8 1 sometown 01-MAR-09
3.5 2 sometown 01-MAR-09
2.8 3 sometown 01-MAR-09
2.8 3 sometown 01-MAR-09
2.8 3 sometown 01-MAR-09
2 4 sometown 01-MAR-09
2.8 5 sometown 01-MAR-09
謝謝 !
您可以用
從mytable中選擇sum(mycolumn)
當您將選擇列表中的聚合器(例如sum(),count())與字段混合使用時,您將更改查詢的含義。 您必須包括GROUP BY子句,並且該子句必須包含選擇列表的每個非聚合部分。
您可以自己在嵌套子查詢中進行總和,然后將輸出包括在外部選擇中...
嘗試:
如果要每個ID的總數,則需要包括一個分組。
SELECT SUM(TICKET_TYPE.PRICE) AS TOTALSALES
, RESERVATION.RESERVATION_ID
, CINEMA.LOCATION
, PERFORMANCE.PERFORMANCE_DATE
FROM RESERVATION
, TICKET
, TICKET_TYPE
, CINEMA
, PERFORMANCE
WHERE TICKET_TYPE.TICKET_TYPE_ID = TICKET.TICKET_TYPE_ID
AND TICKET.RESERVATION_ID = RESERVATION.RESERVATION_ID
AND RESERVATION.PERFORMANCE_ID = PERFORMANCE.PERFORMANCE_ID
AND CINEMA.LOCATION = 'sometown'
AND PERFORMANCE.PERFORMANCE_DATE = to_date('01/03/2009','DD/MM/yyyy');
GROUP BY RESERVATION.RESERVATION_ID
****與上述答案幾乎相同,我需要在發帖前變得更好些****
您首先需要知道的是查詢的“未求和部分”。
您要計算X的Y之和(例如MONTH的SALES之和)。 Y可以是任意數量的字段,並且對於Y字段的每種不同組合,結果數據集將包含一個記錄。
一旦您知道我們可以幫助您編寫查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.