我有一个MySQL用户表,其中包含一个性别列 - 1男性& 0女。每个用户都有性别。
当我说返回100个用户时,我希望能够返回一定比例的男性/女性。 EG:40个账户男性和60个账户女性 - 40/60分割。
我如何使用MySQL做到这一点?
select * from users where gender?
三江源
答案 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 =女性)