Получить средний столбец из двух агрегированных столбцов, созданных Group By - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время я создал таблицу с помощью функции ниже

SELECT c.cus_code, cus_balance,
       SUM (line_units * line_price) AS "Total Purchases",
       COUNT (line_number) AS "Number of Purchases"
FROM customer c JOIN invoice i ON c.cus_code = i.cus_code
JOIN line l ON i.inv_number = l.inv_number
GROUP BY c.cus_code, cus_balance
ORDER BY cus_code;

Теперь я хочу расширить эту таблицу, добавив в столбец "Average Purchase", разделив "Total Purchases"/"Number of Purchases" от результата таблицы, сгруппированного выше. У меня возникла проблема с реализацией последнего столбца, поскольку мне нужно рассчитать последний столбец, используя данные сгруппированные по.

Помощь

Ответы [ 2 ]

2 голосов
/ 08 мая 2019

Почему бы вам просто не использовать AVG()?

SELECT c.cus_code, cus_balance,
       SUM(line_units * line_price) AS "Total Purchases",
       COUNT(line_number) AS "Number of Purchases",
       AVG(line_units * line_price) as "Average Purchase"
FROM customer c JOIN 
     invoice i
     ON c.cus_code = i.cus_code JOIN
     line l
     ON i.inv_number = l.inv_number
GROUP BY c.cus_code, cus_balance
ORDER BY cus_code;

Это предполагает, что line_number не NULL.Это кажется разумным предположением, но если это может быть NULL, вы можете вместо этого разделить выражения.

1 голос
/ 08 мая 2019

Просто добавьте еще один столбец, как-

(SUM (line_units * line_price)*1.00)/(COUNT (line_number)) AS "Average Purchase"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...