我的查询从表gig中获取结果,并为该特定演出提供平均的客户星级。我想取大于3的恒星平均值。

但是,平均值类似于4.000003.900002.8000000。可以,但是我只想获取平均值大于3.0的结果的结果。

但是查询以错误结束。

这是我的查询:

SELECT
    gig.* ,
    (SELECT AVG(order_customer_stars)
     FROM orders
     WHERE orders.gig_id = gig.gig_id) AS star_average
FROM gig
WHERE star_average > 3


请帮忙。谢谢

最佳答案

MySQL扩展了hading子句以执行您想要的操作:

SELECT gig.* ,
       (SELECT AVG(order_customer_stars)
        FROM orders
        WHERE orders.gig_id = gig.gig_id
       ) AS star_average
FROM gig
HAVING star_average > 3;


在其他数据库中,您将使用CTE,子查询或横向联接。

关于mysql - 通过比较浮点值过滤结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55199027/

10-12 00:50