【问题标题】:Calculating overall rating计算总评分
【发布时间】:2013-02-22 03:34:17
【问题描述】:

如果我有一系列 10 个对象,评分从 1 到 10。那么我如何计算总体评分?

例如,如果我有一个这样的列表:

Entertainment - 8/10
Fun - 9/10
Comedy - 6/10
Dance - 8/10

等等...像这 10 个对象。告诉我如何计算 10 的总评分。

Overall - ?/10

我的数学很弱。有人告诉我要加总,如果我得到 83 作为答案,那么总体评分将是 8.3/10。这是正确的吗?

我正在为我的 PHP 网站执行此操作。因此,如果有人知道如何为此编写查询,那对我将非常有帮助。

【问题讨论】:

  • 是的 83/10 是正确的,查询将取决于您没有向我们展示的数据库结构。

标签: php mysql math logic


【解决方案1】:

平均总评分,您就会得到答案。

如果有 10 个评分标准,那么被告知的那个人将是正确的。

SELECT avg(score) FROM tbl

有可用的内置功能 参考 http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_avg

【讨论】:

    【解决方案2】:

    是的,要获得平均值,请将它们加在一起并除以数量。示例:

    //do a MySQL query instead of this
    $result_out_of_10 = array(
        'fun' => 9,
        'comedy' => 6,
        'dance' => 8
    );
    
    $total = 0;
    $total_results = 0;
    foreach( $result_out_of_10 as $result )
    {
        $total += $result;
        $total_results++;
    }
    
    $final_average_out_of_10 = $total / $total_results;
    print "Average rating: $final_average_out_of_10 out of 10.";
    

    编辑: Meherzad 有一个更好的方法 - 使用 MySQL AVG() 函数 - 我不知道。改用他的方式(虽然我的方式仍然有效,但代码比必要的多)。

    【讨论】:

    • @Dagon 我不会删除它,因为它有一天可能对其他人有用。但是是的,我赞成他的 - 因为这是一种更好的方式。
    • 哈哈,这就解释了我的车库里满是垃圾,也许有一天会有用 :-)
    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多