SQL, как получить среднее значение созданного столбца - PullRequest
0 голосов
/ 10 октября 2018

У меня есть этот запрос

SELECT stock,
      ROUND(AVG(dividend / price) *100,3) AS yield 
FROM stock
GROUP BY stock

Я пытаюсь взять среднее значение доходности и отобразить все акции, доходность которых выше среднего значения доходности.

Я пробовал это

SELECT stock,
          ROUND(AVG(dividend / price) *100,3) AS yield 
    FROM stock
    WHERE yield > AVG(yield)
    GROUP BY stock

но я получаю ошибку, и она не работает.

1 Ответ

0 голосов
/ 10 октября 2018

Используйте подзапрос, и join, вероятно, самый простой:

SELECT s.*
FROM (SELECT stock,
             ROUND(AVG(dividend / price) * 100, 3) AS yield 
      FROM stock
      GROUP BY stock
     ) as s INNER JOIN
     (SELECT AVG(yield) as avg_yield
      FROM (SELECT stock,
                   ROUND(AVG(dividend / price) * 100, 3) AS yield 
            FROM stock
            GROUP BY stock
           ) as s
     ) as ss
     ON s.yield >= s.avg_yield;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...