我正在尝试运行总评级查询,部分内容需要 $ sel = mysql_query(“SELECT SUM(col1,col2,col3,col4,col5,col6,col7,col8)/ XXXX as total FROM ratings 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
答案 0 :(得分: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")
使用您正在测试的每个列的相同逻辑替换...
。总和基本上与计数的目的相同,因为你有条件地输出零或一。
不要引用我的语法 - 但这应该指向正确的方向。