繁体   English   中英

分组相等值 - 汇总 function 问题

[英]grouping equal values - aggregate function problem

我创建了一个表格,其中列出了多个事件发生的场所。 同一场地的同一活动可能有不同的价格。 最后一列计算一个场所的总收入。

SELECT     venuename,
           eventname,
           totalprice,
           SUM(totalprice) OVER (PARTITION BY venuename)
    FROM venue
    INNER JOIN event e ON venue.venueid = e.venueid
    INNER JOIN listing l ON e.eventid = l.eventid;
会场 事件 总价
会场A 事件A 5个 30
会场A 事件A 10 30
会场A 事件B 5个 30
会场A 事件A 5个 30
会场A 事件B 5个 30
会场B 事件 C 3个 15
会场B 事件D 6个 15
会场B 事件D 6个 15

现在我想将相等的事件分组并计算场地中一个事件的总收入。

结果应该是这个样子:

会场 事件 总价
会场A 事件A 20 30
会场A 事件B 10 30
会场B 事件 C 3个 15
会场B 事件D 12 15

我解决这个问题的想法是这样的:

SELECT venuename,
       eventname,
       SUM(totalprice),
       SUM(totalprice) OVER (PARTITION BY venuename)
FROM venue
INNER JOIN event e ON venue.venueid = e.venueid
INNER JOIN listing l ON e.eventid = l.eventid
GROUP BY eventname;

但这似乎是不可能的,因为 vanuename 也必须是聚合 function 的一部分。 但是我真的想不出解决这个问题的主意。

希望你们中的任何人都可以帮助我解决这个问题。

你好

您可以组合一个 agrregate 和一个 window function

SELECT venuename,
       eventname,
       SUM(totalprice) totalprice,
       SUM(SUM(totalprice)) OVER (PARTITION BY venuename) sum
FROM venue
INNER JOIN event e ON venue.venueid = e.venueid
INNER JOIN listing l ON e.eventid = l.eventid
GROUP BY venuename, eventname;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM