当存在2个group by条件时,如何计算mysql/sql中的百分比

当存在2个group by条件时,如何计算mysql/sql中的百分比,mysql,sql,database,group-by,aggregation,Mysql,Sql,Database,Group By,Aggregation,我有一个具有上述结构的派生表。我需要计算每个标题中每个组织者的事件数的百分比。i、 e.我期待的结果是: id title count organizer 1 music 4 2 2 sports 6 2 3 music 2 3 我在没有考虑organizer的情况下做这件事的方式很容易产生聚合所有值的百分比,但引入organizer会把事情搞砸。这里有人能帮我吗???你可以在下面试试-使用标量子查询 输出: select organizer,ti

我有一个具有上述结构的派生表。我需要计算每个标题中每个组织者的事件数的百分比。i、 e.我期待的结果是:

id title   count organizer
1  music   4     2
2  sports  6     2
3  music   2     3

我在没有考虑organizer的情况下做这件事的方式很容易产生聚合所有值的百分比,但引入organizer会把事情搞砸。这里有人能帮我吗???

你可以在下面试试-使用标量子查询

输出:

select organizer,title,count*100/(select sum(count) from tablename b where a.organizer=b.organizer)
from tablename a

您可以在下面尝试使用标量子查询

输出:

select organizer,title,count*100/(select sum(count) from tablename b where a.organizer=b.organizer)
from tablename a

将派生表作为实际数据(可能不是最佳数据),您可以:

organizer   title   percentage
   2        music   40.0000
   2        sports  60.0000
   3        music   100.0000
它的工作原理是将每个组织者的数据相加得到一个总数,然后将其与您拥有的数据相加,这样您就可以进行特定活动组织者计数除以该组织者的总数


可能有一种更简单的方法来处理源数据,因为您必须插入查询以创建派生表,这可能会使它变得混乱。作为CTE可能最简单,但下次提问时,一定要尝试包含原始源数据和“查询到目前为止”,否则我们必须在一些我们一无所知的解决方案的基础上构建一个解决方案,结果可能不是最优的

将派生表作为实际数据(可能不是最优的)您可以:

organizer   title   percentage
   2        music   40.0000
   2        sports  60.0000
   3        music   100.0000
它的工作原理是将每个组织者的数据相加得到一个总数,然后将其与您拥有的数据相加,这样您就可以进行特定活动组织者计数除以该组织者的总数


可能有一种更简单的方法来处理源数据,因为您必须插入查询以创建派生表,这可能会使它变得混乱。作为CTE可能最简单,但下次提问时,一定要尝试包含原始源数据和“查询到目前为止”,否则我们必须在一些我们一无所知的解决方案的基础上构建一个解决方案,结果可能不是最优的

请显示您的源数据和到目前为止的查询。向我们展示结果并说“这些都是错误的,帮帮我”对我们来说没什么用处us@CaiusJard数据没有错。这就是目前的数据,也是我想要得到的数据。这张桌子很大,可以把所有的东西都贴出来。到目前为止,我的查询已经生成了第一个表。我没有说我想要整个表,只是您已经编写的查询和生成这些结果的数据样本将很好。请显示您的源数据和到目前为止的查询。向我们展示结果并说“这些都是错误的,帮帮我”对我们来说没什么用处us@CaiusJard数据没有错。这就是目前的数据,也是我想要得到的数据。这张桌子很大,可以把所有的东西都贴出来。到目前为止,我的查询已经生成了第一个表。我没有说我想要整个表,只是您已经编写的查询和生成这些结果的数据样本就可以了