我正在尝试制作存储过程,我可以获得公司名称和员工总数(员工人数),然后最终获得适用于该公司的整个员工队伍的百分比。我遇到了困难做分工。您可以将代码作为纯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
答案 0 :(得分:1)
将filter
移至SUM
聚合并将其除以总和
试试这种方式
SELECT Sum(CASE
WHEN COMPANY = 'USAPaper' THEN COMPANY_WORKFORCE
ELSE 0
END) / NULLIF(Sum(COMPANY_WORKFORCE), 0)
FROM COMPANIES
在分母中使用NULLIF
来处理除以零的错误。