SQL - 如何获得SUM的百分比

时间:2016-10-27 07:25:30

标签: java mysql sql

我正在尝试制作存储过程,我可以获得公司名称和员工总数(员工人数),然后最终获得适用于该公司的整个员工队伍的百分比。我遇到了困难做分工。您可以将代码作为纯SQL提交,但我在java程序中执行此操作。我试图在sql中完成所有逻辑,但如果需要我可以在java中完成。

SELECT SUM(COMPANY_WORKFORCE) AS totalWorkforce FROM COMPANIES WHERE COMPANY = 'USAPaper';

除以

SELECT SUM(COMPANY_WORKFORCE) FROM COMPANIES; 

更新

如何指定要显示的公司。我只想把美国劳动力纸张的百分比与所有公司的整个劳动力进行比较

SELECT CITY, COMPANY,  COMPANY_WORKFORCE, COMPANY_WORKFORCE * 100 / t.s AS `% of total` FROM COMPANIES CROSS JOIN (SELECT SUM(COMPANY_WORKFORCE) AS s FROM COMPANIES) t

1 个答案:

答案 0 :(得分:1)

filter移至SUM聚合并将其除以总和

试试这种方式

SELECT Sum(CASE
             WHEN COMPANY = 'USAPaper' THEN COMPANY_WORKFORCE
             ELSE 0
           END) / NULLIF(Sum(COMPANY_WORKFORCE), 0)
FROM   COMPANIES 

在分母中使用NULLIF来处理除以零的错误。