大佬教程收集整理的这篇文章主要介绍了php-MySql调查不同查询,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
大家好,我确实在MySql查询中苦苦挣扎,我有一个名为“ info”的表,并且其中有一个名为“ rating”的列,评分在1-10之间.
现在,我需要生成一个百分比值,该百分比值表示1-6、7-8和9-10中有多少评级,但我需要它们拼命显示,之后我需要第二个查询,该查询可以从中减去结果的百分比值1-6和9-10.
下面的查询与我从所有研究中获得的查询一样接近,但是我不知道如何仅获得1-6的百分比,而不是全部,以及如何获得第二个查询以减去1-6和9-10个评分百分比.
@H_616_8@SELECT rating, COUNT(*) AS Count, (COUNT(*) / _@R_624_10586@l ) * 100 AS Percentege FROM info, (SELECT COUNT(*) AS _@R_624_10586@l FROM info) AS my@R_624_10586@l GROUP BY rating
解决方法:
@H_616_8@SELEct if(rating between 1 and 6, '1-6', if( rating between 7 and 8, '7-8', '9-10' ) ) as rating_range, count(1) as num from info group by rating_range
编辑:添加舍入和计算
可以用作子查询.给定分组依据,您需要单独获取总金额:
@H_616_8@SELEct Q.rating_range, Q.num, round(Q.num * 100 / Q.@R_624_10586@l, 2) as percent from ( SELEct R.*, (SELEct count(1) from info) as @R_624_10586@l from ( SELECT if(rating between 1 and 6, '1-6', if( rating between 7 and 8, '7-8', '9-10' ) ) as rating_range, count(1) as num from info group by rating_range ) R ) Q group by Q.rating_range
就相对价值而言,如果我有一个,我可能会在外部应用程序中做到这一点.否则,您可以执行我想进行的特定查询:
@H_616_8@SELEct Q.rating_range, Q.num, round(Q.num * 100 / Q.@R_624_10586@l, 2) as percent, round( (Q.num - Q.@R_624_10586@l_nine_ten) * 100 / Q.@R_624_10586@l, 2) as diff_from_nine_ten from ( SELEct R.*, (SELEct count(1) from info) as @R_624_10586@l, (SELEct count(1) from info where rating > 8 ) as @R_624_10586@l_nine_ten from ( SELECT if(rating between 1 and 6, '1-6', if( rating between 7 and 8, '7-8', '9-10' ) ) as rating_range, count(1) as num from info group by rating_range ) R ) Q group by Q.rating_range
不是很优雅,但是可以用
以上是大佬教程为你收集整理的php-MySql调查不同查询全部内容,希望文章能够帮你解决php-MySql调查不同查询所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。