2013-04-01 251 views
20

我有一個MySQL數據庫有4項:id(數值),group_name,employeessurveysMySQL計算百分比

在我的SELECT中,我需要計算「調查」中的「員工」數量佔調查總數的百分比。

這是發言。我現在有:

​​

下面是表,因爲它主張:

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'); 

我很想在surveys已經數誰計算的employees百分比接受調查。即如上述數據所示,Awesome Group A將爲0%,並且Awesome Group B將爲95%。

+0

這'集團BY'做法不應該被使用。這是非標準的,會產生不希望的結果。 – Kermit

+0

示例數據和您希望的reslut可能? –

+0

下面是表格:'INSERT INTO'a_test'('id','group_name','employees','surveys')值 (1,'Awesome Group A','100','0' ), (2,'Awesome Group B','200','190'), (3,'Awesome Group C','300','290');我很樂意根據「調查」中的人數調查了「僱員」的比例。如上面的真棒組A將是0%,真棒組B將是95% – user2232709

回答

43

試試這個

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

+0

@ user2232709編輯了我的答案 –

+0

如何在此處使用列別名?就像我正在計算像employees_type1 + employees_type2 AS員工那樣的員工價值,那麼是否有可能在concat函數中使用員工別名? –

+0

不,您必須使用連接或子查詢。 –