嘿伙计们,我需要一些帮助,我无法正确执行......
我有两个查询可以让我获得获得正确百分比所需的结果。
第一个查询:
Select Date, AgeGroup,SUM(NumberOfFans) From FansPerGenderAge WHERE date = (SELECT max(date) from FansPerGenderAge) GROUP BY AgeGroup;
结果:
2018-10-16|13-17|20332
2018-10-16|18-24|206787
2018-10-16|25-34|347581
2018-10-16|35-44|188335
2018-10-16|45-54|91804
2018-10-16|55-64|48793
2018-10-16|65+|67379
第二个查询:
Select SUM(NumberOfFans) From FansPerGenderAge WHERE date = (SELECT max(date) from FansPerGenderAge);
结果:
971011
我需要将查询 1 中的 NumberOfFans 结果除以查询二的结果
最终结果应该显示 AgeGroup 和按 AgeGroup 分组的 PercentageOfFans...
有什么想法吗?
我尝试了简单的事情,例如:
SELECT AgeGroup, Round(AgeGroup * 100.0 / SUM(NumberOfFans), 4) FROM FansPerGenderAge WHERE date = (SELECT max(date) from FansPerGenderAge) GROUP BY AgeGroup;
13-17|0.0639
18-24|0.0087
25-34|0.0072
35-44|0.0186
45-54|0.049
55-64|0.1127
65+|0.0965
但是,当手动完成计算时,这不是正确的百分比。
13-17岁年龄段的答案应该是0.020939
使用交叉连接和子查询来获得你想要的结果
select AgeGroup,NumberOfFans/NumberOfFans2
(Select Date,
AgeGroup,
SUM(NumberOfFans)
From FansPerGenderAge
WHERE date = (SELECT max(date) from FansPerGenderAge)
GROUP BY AgeGroup) a
join (
Select
SUM(NumberOfFans) NumberOfFans2
From FansPerGenderAge
WHERE date = (SELECT max(date) from FansPerGenderAge)) b
on 1=1