当前位置: 首页 > 面试题库 >

SQL-SUM()的条件

堵存
2023-03-14
问题内容

是否可以做这样的事情:

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()。例: