sql小技巧之mysql关于百分比的查询

1.查询当前月相较于上月增长或者减少的百分比查询

查询语句结构如下:

SELECT
	count(1) total,
	COUNT( CASE WHEN MONTH ( create_time ) = MONTH ( CURRENT_DATE ) AND YEAR ( create_time ) = YEAR ( CURRENT_DATE ) THEN 1 END ) AS current_month_count,
	COUNT(
	CASE
			
			WHEN MONTH ( create_time ) = MONTH ( CURRENT_DATE - INTERVAL 1 MONTH ) 
			AND YEAR ( create_time ) = YEAR ( CURRENT_DATE - INTERVAL 1 MONTH ) THEN
				1 
			END 
			) AS last_month_count,
			ROUND(
				(
					COUNT( CASE WHEN MONTH ( create_time ) = MONTH ( CURRENT_DATE ) AND YEAR ( create_time ) = YEAR ( CURRENT_DATE ) THEN 1 END ) - COUNT(
					CASE
							
							WHEN MONTH ( create_time ) = MONTH ( CURRENT_DATE - INTERVAL 1 MONTH ) 
							AND YEAR ( create_time ) = YEAR ( CURRENT_DATE - INTERVAL 1 MONTH ) THEN
								1 
							END 
							) 
							) / NULLIF(
							COUNT(
							CASE
									
									WHEN MONTH ( create_time ) = MONTH ( CURRENT_DATE - INTERVAL 1 MONTH ) 
									AND YEAR ( create_time ) = YEAR ( CURRENT_DATE - INTERVAL 1 MONTH ) THEN
										1 
									END 
									),
									0 
								) * 100,
								2 
							) AS percentage_change 
					FROM
	robot;

2.关于某个字段的某一状态占全表百分比

SELECT 
    (COUNT(*) / (SELECT COUNT(*) FROM robot_task)) * 100 AS bigRate
FROM robot_task
WHERE status = 2;

好了,这期sql小技巧就结束了,感谢你的浏览。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值