MySQL选择返回一定百分比的列(二进制值)

时间:2016-09-28 11:57:22

标签: mysql

我有一个MySQL用户表,其中包含一个性别列 - 1男性& 0女。每个用户都有性别。

当我说返回100个用户时,我希望能够返回一定比例的男性/女性。 EG:40个账户男性和60个账户女性 - 40/60分割。

我如何使用MySQL做到这一点?

select * from users where gender?

三江源

3 个答案:

答案 0 :(得分:3)

SELECT ma.gender
     , COUNT(1) AS total
     , COUNT(1) / t.gender * 100 AS `percentage`
  FROM users ma
 CROSS
  JOIN (SELECT COUNT(1) AS gender FROM users) t
 GROUP
    BY ma.gender

答案 1 :(得分:1)

如果您特别想要获得40名男性和60名女性,请使用union all

(select u.*
 from users u
 where u.gender = 'male'
 limit 40
) union all
(select u.*
 from users u
 where u.gender = 'female'
 limit 40
);

答案 2 :(得分:0)

SELECT 100*SUM(u.gender)/SUM(1) AS pc
FROM users as u
WHERE ...
然后

pc是男性的百分比(因为1 =男性,0 =女性)