首页 > 解决方案 > 如何计算列中的“优于 X% 的用户”?

问题描述

我有一张像这样的桌子:

|   id  |   totalScore   |
--------------------------
|   1   |       -3       |
|   2   |        6       |
|   3   |       10       |
|   4   |        7       |
|   5   |       -4       |
|   6   |        4       |
|   7   |       -3       |
...

所以对于给定的数字(示例 5),我想找到* 你比 10% 的用户好!* , 或 20%, 或 30% 等。

我怎样才能做到这一点?也许使用averagetotalScoregroup by10、20、30 值?是否可以?

我正在使用 Laravel 5.6。

标签: phpmysqllaravel

解决方案


  1. 获取用户的分数(在您的情况下为 5)
  2. 统计所有分数低于 5 的用户
  3. 将该数量除以用户总数,然后乘以 100 作为百分比

例如,您将有一个得分为 5 的用户。您总共有 7 个用户,其中 4 个的得分低于 5,导致 4/7*100 = 57%


推荐阅读