我正在尝试运行总评分查询,其中一部分需要
    $ sel = mysql_query(“ SELECT SUM(col1,col2,col3,col4,col5,col6,col7,col8)/ XXXX,总计FROM评分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

最佳答案

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")


对于要测试的每一列,用相同的逻辑替换...。由于有条件地输出零或一,所以总和在本质上与计数具有相同的目的。

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

关于mysql - mysql count()每列大于0的行条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10458114/

10-16 23:29