不知道是否有人可以帮助我理解如何总结单列专栏,即将成本列表合并为一个总成本。
我一直在研究这个问题,我认为我在unscanding中处于正确的界限,我需要对查询求和,将其视为子查询。但是我没有太多运气 - 我是否需要给子查询一个别名,或者是一个将查询包装成总和的直接案例?
这是我想要总结的工作查询,为了清晰起见,我所有的总和尝试都被遗漏了!
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
谢谢!
答案 0 :(得分:0)
您可以使用
对单个列求和从mytable中选择sum(mycolumn)
当您使用字段混合选择列表中的聚合器(例如,sum(),count())时,您可以更改查询的含义。您必须包含GROUP BY子句,该子句必须包含选择列表的每个非聚合部分。
您可以在嵌套子查询中单独执行求和,然后在外部选择中包含该输出...
答案 1 :(得分:0)
尝试:
如果您想要每个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
****与上面几乎相同的答案,我需要在发布****之前更好地刷新
答案 2 :(得分:0)
您首先需要知道的是查询的“非求和部分”应该是什么。
您想要通过Y计算X的和(例如,按MONTH计算SALES的总和)。 Y可以是任意数量的字段,结果数据集将包含Y字段的每个不同组合的一条记录。
一旦您知道我们可以帮助您撰写查询。