mysql group by,sum groups,然后得到排名与其他组合的比较

时间:2016-01-31 22:04:00

标签: php mysql

我在我的网站上使用mysql数据库(phpmyadmin)和php。我遇到的问题是我有一个数据库,用户注册并可以累积积分。每个用户也被放置在地图(区域)上的某个位置。

我希望能够:

  1. 将用户分组到他们的区域
  2. SUM区域的所有点然后
  3. 找到与其他区域相比的区域排名
  4. 最后从71个可能区域中获得百分比
  5. 我想在php中输出71的百分比,并为每个区域执行此操作。

    这是我到目前为止工作的代码。这将从数据库中提取数据并将其显示为两列,左侧为区域,右侧为该区域中所有点的总和。我不知道从哪里开始,或者输出这些数据有助于实现我的总体目标。任何帮助或指导表示赞赏。

    <?php
    require ('connect_db.php');
    
    $sql = "SELECT zone, SUM(total) FROM UserInfo GROUP BY zone ORDER BY SUM(total) DESC LIMIT 10"; 
    
            $result = $dbc->query($sql);
    
    echo "<table>"; 
    
    
    while($row = mysqli_fetch_array($result))
    {   
    echo "<tr><td>" . $row['zone'] . "</td><td>" . $row['SUM(total)'] . "</td>  </tr>";  
    }
    
    echo "</table>"; 
    
    mysql_close(); 
    
       ?>
    

    以下是查询的输出:

    zone  sum_of_zone
    
    zone1   119860
    zone24  67200
    zone2   66400
    zone70  18990
    zone12  18760
    zone57  18400
    zone4   17400
    zone13  14400
    zone65  11200
    zone70  10400
    

0 个答案:

没有答案