Фильтрация результатов путем сравнения значения с плавающей запятой - PullRequest
0 голосов
/ 16 марта 2019

Мой запрос берет результаты из таблицы gig и среднего числа звезд клиентов, присвоенных этому конкретному концерту.Я хочу взять средние значения звезд больше, чем 3.

Однако, средние значения как 4.00000, 3.90000, 2.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

Пожалуйста, помогите.Спасибо

1 Ответ

0 голосов
/ 16 марта 2019

MySQL расширяет предложение, чтобы делать то, что вы хотите:

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, подзапрос или боковое соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...