0

我正在尝试运行总评级查询,其中一部分需要 $sel = mysql_query("SELECT SUM(col1, col2, col3, col4, col5, col6, col7, col8)/XXXX as total FROM rating WHERE shop_id = $shop_id ");

XXXX 在哪里,我需要计算每列高于 0 的行条目数,然后将 TOTAL 除以 # 以获得总评分。

数学是:总/大于 0 的值的数量

谢谢

我正在尝试计算 0 以上的条目数,这意味着 shop_id 为 1 的共有 35 个。35 除以 0 以上的条目数,即 5 以获得总结果,而不将 0 行/列作为投票.

这是我想要的与表中数据相关的输出。shop_id 1 -> 35/7 = 5 shop_id 2 -> 42/ = 3 shop_id 3 -> 40/8 = 5

在此处输入图像描述

4

1 回答 1

1
SELECT 
SUM(col1, col2, col3, col4, col5, col6, col7, col8)/
SUM(IF(col1 > 0, 1, 0), IF(col2 > 0, 1, 0), ... ) AS total 
FROM ratings 
WHERE shop_id = $shop_id")

为您正在测试的每一列替换...相同的逻辑。由于您有条件地输出零或一,因此总和基本上与计数具有相同的目的。

不要引用我的语法 - 但这应该为您指明正确的方向。

于 2012-05-05T02:00:02.473 回答