如何用简单的MySQL查询获取各评分的占比百分比?
解决MySQL评分占比百分比查询问题
没问题,这需求很常见,咱们可以用一个简单的分组查询结合聚合函数来实现。假设你的数据表名叫ratings,下面是具体的SQL语句:
SELECT RATING, CONCAT(ROUND((COUNT(*) * 100.0) / (SELECT COUNT(*) FROM ratings), 0), '%') AS percentage FROM ratings GROUP BY RATING ORDER BY RATING;
语句说明
COUNT(*):统计当前分组(同一评分)下的记录条数(SELECT COUNT(*) FROM ratings):子查询获取表中所有记录的总数,这里用100.0而非100是为了触发浮点除法,避免整数除法导致的精度丢失ROUND(..., 0):将计算结果取整,如果你需要保留小数位数,比如保留1位小数,可改为ROUND(..., 1)CONCAT(..., '%'):将数字结果拼接成带百分号的字符串格式,符合预期的输出样式
代入你提供的测试数据后,执行结果会完美匹配需求:
- 评分1对应25%
- 评分2对应25%
- 评分5对应50%
内容的提问来源于stack exchange,提问作者Guntis Endzelis
相关产品推荐
相关产品推荐

