【发布时间】:2022-01-23 03:46:26
【问题描述】:
我得到了下表,如果所有行都有 disponibilidad = 1,我需要返回 1
以下 QUERY 可以正常工作,但我正在寻找一种更有效的方法。
查询:
SELECT IF(AVG(disponibilidad) < 1, 0, 1) AS newResult
FROM pasteleria.compone
RIGHT JOIN pasteleria.ingredientes
ON pasteleria.compone.id_ingrediente = pasteleria.ingredientes.id_ingrediente
WHERE id_componente = 1;
结果:
在我看来,使用“AND”会更有效率,因为它不必执行 AVG()。
【问题讨论】:
-
AVG没有 group by 有什么意义? dev.mysql.com/doc/refman/8.0/en/… -
目前只是一个示例查询,如果值的 AVG 低于 1,则表示其中至少有 1 个为 0。
-
我认为你应该改用
having子句
标签: mysql group-by boolean tinyint