是否可以做这样的事情:
SELECT
`e`.*,
`rt`.`review_id`,
(SUM(vt.percent) / COUNT(vt.percent)) AS rating
FROM `catalog_product_entity` AS `e`
INNER JOIN `rating_option_vote` AS `vt`
ON vt.review_id = e.review_id
WHERE (rating >= '0')
GROUP BY `vt`.`review_id`
我尤其要在除法结果值上放置一个where条件
这可以通过HAVING子句完成:
SELECT e.*, rt.review_id, (SUM(vt.percent) / COUNT(vt.percent)) AS rating
FROM catalog_product_entity AS e
INNER JOIN rating_option_vote AS vt ON e.review_id = vt.review_id
GROUP BY vt.review_id
HAVING (SUM(vt.percent) / COUNT(vt.percent)) >= 0
ORDER BY (SUM(vt.percent) / COUNT(vt.percent)) ASC
注意:添加了放置ORDER BY
语句的位置
查询优化器也不应该多次计算平均值,因此在这里不必担心。
正如@jagra的答案中提到的那样,您应该可以使用AVG()
而不是SUM() / COUNT()
问题内容: 我有以下方式的数据: 我想要正数量的总和(数量> 0)和负数量的总和(数量<0)。 如何根据条件获取这些列的总和? 问题答案: 您可以使用: LiveDemo
SUM() 函数 SUM() 函数返回数值列的总数。 SQL SUM() 语法SELECT SUM(column_name) FROM table_name; 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 "access_log" 表的数据: mysql> SELECT * FROM access_log; +-----+---------+-------+----
问题内容: 嗨,有一种方法可以根据与SELECT语句其余部分不同的条件来执行SUM(total_points),所以我希望每行<= to $ chosentrack的SUM(total_points)吗?但SELECT语句的其余条件必须满足以下条件。我需要将它们全部归还..当我填充一个联赛桌时。 非常感谢您的帮助。 问题答案: 您也可以将总和放在case语句中,在case语句中评估其他条件,然后仅
问题内容: 如何将sql查询写入hibernate条件? 问题答案: 想我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例:
Sum 函数 返回包含在指定查询字段中一组值的总计。 语法 Sum(expr) 其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。 expr中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL 合计函数)。 说明 Sum 函数求字段中值的总和。例如,可用 Sum 函
问题内容: 如何将sql查询写入休眠条件? 问题答案: 认为我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例: