计算access 2016中按组列出的合计百分比

l5tcr1uw  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(447)

我有一个查询返回多个事件ID的结果。我想计算每个选择id的每个事件id的总ppwap的百分比ppwap。
以下是单个事件id的结果示例:

有人能建议怎么做吗?
谢谢

zysjyyx4

zysjyyx41#

我倾向于使用 GROUP BY 以及 JOIN 为了这个。你的问题有点不清楚。如果要按事件列出比例:

select e.*, PPWAP / total_PPWAP as ratio
from tblEvent as e inner join
     (select event_id, sum(PPWAP) as total_PPWAP
      from tblEvent 
      group by event_id
     ) as ee
     on ee.event_id = e.event_id;

如果你真的想通过一些看不见的栏目,比如 selection_id ,那么你就用它来 GROUP BY 以及 JOIN .
我经常喜欢相关子查询。但在这种情况下,它可能会做更多的工作,因为它会多次为每个组进行聚合。

k5hmc34c

k5hmc34c2#

我认为您需要使用一个子查询来获取每个选择的总数,然后您可以使用它来计算每行的百分比:

SELECT 
    E.EVENT_ID, 
    E.EVENT_NAME, 
    E.EVENT_DATE, 
    E.SELECTION_NAME, 
    E.PPWAP,
    (SELECT SUM(E1.PPWAP) FROM tblEvent AS E1 WHERE E1.EVENT_ID=E.EVENT_ID AND E1.EVENT_DATE=E.EVENT_DATE) AS TOTAL_PPWAP,
    E.PPWAP/TOTAL_PPWAP*100 AS PCT_PPWAP
FROM tblEvent AS E

这将产生以下输出:

您可能需要更改 WHERE 子查询的一部分,具体取决于如何定义要计算的总计。
当做,

相关问题