2011-08-12 29 views

回答

1
mysql> CREATE TABLE user (username VARCHAR(20) NOT NULL, gender ENUM('male','female')); 
Query OK, 0 rows affected (0.09 sec) 

mysql> INSERT INTO user (username, gender) VALUES 
    -> ('berry', 'male'), 
    -> ('jessica alba', 'female'), 
    -> ('Sasha DiGiulian', 'female'); 
Query OK, 3 rows affected (0.03 sec) 
Records: 3 Duplicates: 0 Warnings: 0 

mysql> SELECT COUNT(username), gender FROM user GROUP BY gender; 
+-----------------+--------+ 
| COUNT(username) | gender | 
+-----------------+--------+ 
|    1 | male | 
|    2 | female | 
+-----------------+--------+ 
2 rows in set (0.02 sec) 


mysql> SELECT total, gender, number, (100 * number/total) AS percentage FROM (SELECT COUNT(username) AS total FROM user) AS total, (SELECT COUNT(username) AS number, gender FROM user GROUP BY gender) as genders; 
+-------+--------+--------+------------+ 
| total | gender | number | percentage | 
+-------+--------+--------+------------+ 
|  3 | male |  1 | 33.3333 | 
|  3 | female |  2 | 66.6667 | 
+-------+--------+--------+------------+ 
2 rows in set (0.00 sec) 

編輯:增加了百分比的計算。

+0

我們如何爲zend框架編寫相同的查詢 – anurodh

+0

@anurodh我不使用ZF,所以我不確定,但我認爲您可以簡單地在ZF中編寫原始SQL? –

2

有沒有真正足夠的具體信息去,因此它必須是僞代碼,恐怕:

%male = (100 * Number of Rows where sex == Male)/Total Number of Rows 
%female = (100 * Number of Rows where sex == Female)/Total Number of Rows 

如果每行只能是男性或女性,女性百分比= 100 - %男性。

相關問題