MySQL Calculate Percentage

user2232709 picture user2232709 · Apr 1, 2013 · Viewed 114.9k times · Source

I have a MySQL database with 4 items: id (numerical), group_name, employees, and surveys.

In my SELECT I need to calculate the percentage of 'employees' who, by the number in 'surveys', have taken the survey.

This is the statement I have now:

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

Here is the table as it stands:

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 would love to calculate the percentage of employees who by the number in surveys have taken the survey. i.e. as shown in the data above, the Awesome Group A would be 0% and Awesome Group B would be 95%.

Answer

echo_Me picture echo_Me · Apr 1, 2013

try this

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

DEMO HERE