MySQL统计两部分查询结果记录数量比值

在SQL查询中,我们可能会有这样的需求,如下面的表

姓名班级性别爱好
姚远1装X,赚钱,靠女人
路晓欧1装X,赚钱,帮男人
刘云天2赚钱,傲娇
霍梅2赚钱,坑闺蜜,帮男人
高畅1赚钱,帮大哥,帮霍梅
刘达2赚钱,追晓鸥

如果我们想统计一下,2班中,男生和女生的比例,那么可以怎么做呢,我们可以

SELECT
	S1.male AS 男,
	S2.female AS 女,
	S1.male / ( S1.male + S2.female ) AS result 
FROM
	( SELECT count( * ) AS male FROM test2 WHERE class = '2' AND sex = '男' ) S1,
	( SELECT count( * ) AS female FROM test2 WHERE class = '2' AND sex = '女' ) S2

结果:

result
210.6667

这样,就查询出了2班中,男生所占比例。

 

换一个问题,如果我们想统计一下,1班和2班所有人中,喜欢赚钱的人所占的比例,我们可以

SELECT
	S1.zhuanqian AS 喜欢赚钱,
	S2.sumary AS 总人数,
	S1.zhuanqian / S2.sumary AS result 
FROM
	(
	SELECT
		count( * ) AS zhuanqian 
	FROM
		test2 
	WHERE
		( class = '1' OR class = '2' ) 
		AND LOCATE( '赚钱', fav ) 
	) S1,
	( SELECT count( * ) AS sumary FROM test2 WHERE class = '1' OR class = '2' ) S2

结果:

喜欢赚钱总人数result
661.0000

很明显,所有人都喜欢赚钱,没毛病。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值