【发布时间】:2017-03-14 11:15:39
【问题描述】:
我有两个表 App 和 Store
- Grouped :这是分组的应用程序的计数,即 HasGroup =1
- NonGrouped : 它是未分组的应用程序的计数,即 HasGroup = 0
- 分组 (%) : 分组的应用程序百分比,即 HasGroup =1
- NonGrouped (%) : 未分组的应用程序百分比,即 HasGroup = 0
- AverageNonGrouped (%) : 它是分组应用程序的平均值,即
(Invidual NonGrouped(%) / total NonGrouped(%))*100。例如,对于 ABC,它是(75/ 165)*100 = 45.45,同样对于 XYZ,它是(50/ 165)*100 = 30.30。这里165是75+50+40的总和
我的查询如下所示
SELECT
AppName,
SUM( CASE HasGroup WHEN 1 THEN 1 ELSE 0 END ) AS Grouped,
SUM( CASE HasGroup WHEN 0 THEN 1 ELSE 0 END ) AS NonGrouped,
ROUND(((SUM( CASE HasGroup WHEN 1 THEN 1 ELSE 0 END ) /
(SUM( CASE HasGroup WHEN 0 THEN 1 ELSE 0 END ) +
SUM( CASE HasGroup WHEN 1 THEN 1 ELSE 0 END )))*100), 2) AS GroupedPercentage,
ROUND(((SUM( CASE HasGroup WHEN 0 THEN 1 ELSE 0 END ) /
(SUM( CASE HasGroup WHEN 0 THEN 1 ELSE 0 END ) +
SUM( CASE HasGroup WHEN 1 THEN 1 ELSE 0 END )))*100), 2) AS NonGroupedPercentage
FROM
Apps
INNER JOIN Store
ON (Apps.Store = Store.Store)
AND AppName !='' GROUP BY AppName
我能够找到除 AverageNonGrouped (%) 以外的列,因为我不知道如何获得总的 NonGrouped(%),谁能帮我解决这个问题
【问题讨论】:
-
如何计算“总分组(%)”?
-
@DanIonescu 这就是我被卡住的地方!!!
-
您在示例中使用了“165”,您如何达到 165? ((75/ 165)*100 = 45.45)
-
@DanIonescu
165是75+50+40的总和 -
但是你也说公式是:“(Invidual Grouped(%) / total Grouped(%))*100”,第75、50、40列代表“未分组”你的桌子,你说“(个人分组(%)/总非分组(%))* 100”?