MySQL计算百分比

MySQL计算百分比,mysql,percentage,Mysql,Percentage,我有一个MySQL数据库,其中包含4项:id(数字)、组名、员工,以及调查 在我的选择中我需要根据“调查”中的数字计算参加调查的“员工”的百分比 这是我现在的声明: SELECT group_name, employees, surveys, COUNT( surveys ) AS test1, ((COUNT( * ) / ( SELECT COUNT( * ) FROM a_test)) * 100 ) AS percentage FROM a_test GROUP

我有一个MySQL数据库,其中包含4项:
id
(数字)、
组名
员工
,以及
调查

在我的
选择中
我需要根据“调查”中的数字计算参加调查的“员工”的百分比

这是我现在的声明:

SELECT
  group_name,
  employees,
  surveys,
  COUNT( surveys ) AS test1, 
  ((COUNT( * ) / ( SELECT COUNT( * ) FROM a_test)) * 100 ) AS percentage
FROM
  a_test
GROUP BY
  employees

这是目前的桌子:

INSERT INTO a_test (id, group_name, employees, surveys) VALUES
(1, 'Awesome Group A', '100', '0'),
(2, 'Awesome Group B', '200', '190'),
(3, 'Awesome Group C', '300', '290');
我想根据
调查
中的人数计算参加调查的
员工的百分比。i、 e.如上面的数据所示,
Awesome组A
为0%,而
Awesome组B
为95%。

试试这个

   SELECT group_name, employees, surveys, COUNT( surveys ) AS test1, 
        concat(round(( surveys/employees * 100 ),2),'%') AS percentage
    FROM a_test
    GROUP BY employees

不应使用此
分组方法。它是非标准的,会产生不想要的结果。样本数据和你希望的结果可能会是什么?下面是表格:插入
a_测试
id
group_name
员工
调查
)值(1,'Awesome group a','100','0'),(2,'Awesome group B','200','190'),(3、‘超棒C组’、‘300’、‘290’)我想计算一下在“调查”中参与调查的“员工”的百分比。如上文所述,Aoweasome组A为0%,Aoweasome组B为95%@Thomas。所有其他平台都要求
SELECT
中的非聚合字段出现在
Group by
中。MySQL不遵循这一点standard.@Thomas只是想补充一点,它选择的不是字段,而是它选择显示的非组字段的值。在5.8中(也可能是5.7)该行为现在与其他数据库一致。非标准行为是有用的,但如果您依赖它,则是危险的。我如何在此处使用列别名?例如,如果我正在计算employees值,如“employees_type1+employees_type2作为雇员,那么我可以在concat函数中使用雇员别名吗?不可以。您必须使用联接或子查询。