Я создал запрос для получения данных из нескольких столбцов. Однако при использовании AVG (*) AVERAGE для отображения значения для данного столбца функция просто реплицирует и отображает данные в каждой строке. По сути, я хочу, чтобы таблица отображала каждый столбец в запросе и отображала среднее значение таблицы в каждой строке.
Если у меня нет нескольких столбцов в операторе выбора, тогда я могу запросить таблицу, чтобы отобразить истинное среднее значение для данного столбца. Я пытался использовать UNION и SELF JOIN для запроса AVG (*) AVERAGE, но безуспешно.
CREATE TABLE INVOICE
(
INV_NUM NUMBER NOT NULL PRIMARY KEY,
CUST_NUM NUMBER NOT NULL REFERENCES CUSTOMER(CUST_NUM),
INV_DATE DATE NOT NULL,
INV_AMOUNT NUMBER NOT NULL
);
INSERT ALL
INTO (INV_NUM,CUST_NUM,INV_DATE,INV_AMOUNT)
VALUES ('8000','1000','3/23/2014','235.89')
INTO (INV_NUM,CUST_NUM,INV_DATE,INV_AMOUNT)
VALUES ('8001','1001','3/23/2014','312.82')
INTO (INV_NUM,CUST_NUM,INV_DATE,INV_AMOUNT)
VALUES ('8002','1002','3/30/2014','528.10')
INTO (INV_NUM,CUST_NUM,INV_DATE,INV_AMOUNT)
VALUES ('8003','1003','4/12/2014','194.78')
INTO (INV_NUM,CUST_NUM,INV_DATE,INV_AMOUNT)
VALUES ('8004','1004','4/23/2014','619.44')
SELECT * FROM DUAL;
--------------TABLE QUERIES----------------
SELECT INV_NUM, INV_AMOUNT, AVG(INV_AMOUNT) AVERAGE,
AVG(INV_AMOUNT)-INV_AMOUNT DIFFERENCE
FROM INVOICE
GROUP BY INV_NUM, INV_AMOUNT;