我正在尝试运行总评分查询,其中一部分需要
$ 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/