繁体   English   中英

如何在MySQL中计算总数的百分比

[英]How to calculate % of total in MySQL

我有以下qry:

select count(*) as headct
, case
when year(DOB) <= 1945 then 'Traditionalist'
when year(DOB) >= 1946 and year(DOB) < 1965 then 'Baby Boomer'
when year(DOB) >= 1965 and year(DOB) < 1981 then 'Gen X'
when year(DOB) >= 1981 then 'Gen Y'
end as generation
from ret_active
group by Generation with rollup;

它返回此表:

headct    generation
--------------------------
1820      Baby Boomer
2208      Gen X
883       Gen Y
17        Traditionalist
4928      null

如何添加另一列,以显示每个类别的总数百分比? 换句话说,如何获得以下结果:

headct    generation      % of Total
-------------------------------------
1820      Baby Boomer     37%
2208      Gen Xm          45%
883       Gen Y           18%
17        Traditionalist  0%
4928      null            100%

谢谢!

select count(*) as headct
, case
    when year(DOB) <= 1945 then 'Traditionalist'
    when year(DOB) >= 1946 and year(DOB) < 1965 then 'Baby Boomer'
    when year(DOB) >= 1965 and year(DOB) < 1981 then 'Gen X'
    when year(DOB) >= 1981 then 'Gen Y'
  end as generation
, concat(round(count(*)/
    (select count(*) from ret_active)*100,0),'%') as '% of Total'
from ret_active
group by Generation with rollup

暂无
暂无

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

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