Средняя функция в SQL не работает с учетом видов

StackOverflow https://stackoverflow.com/questions/19855781

  •  29-07-2022
  •  | 
  •  

Вопрос

Я хотел бы создать представление из имени таблицы, содержащего поля (EMP_CODE, EMP_NAME, зарплата, DEPT_CODE) как

create view dept_avg_salary as select dept_code , avg(salary) as average 
   from employee 
   group by dept_code

Хотя вышеупомянутый запрос работает хорошо, но в среднем столбце, то же значение 9999,9999 хранится в каждой строке. Но если я запускаю запрос

select dept_code ,  avg(salary) as average 
    from employee 
    group by dept_code

это работает хорошо. Кто-нибудь может мне помочь

Это было полезно?

Решение

Я не могу повторить этот результат (за исключением случаев, когда все зарплаты одинаковы). Подумайте о предоставлении правильных DDL, чтобы мы могли увидеть, как построена ваша таблица ...

CREATE TABLE employee(emp_code INT NOT NULL AUTO_INCREMENT PRIMARY KEY, emp_name VARCHAR(12) NOT NULL, salary INT NOT NULL, Dept_code CHAR(1) NOT NULL);

INSERT INTO employee VALUES
(1,'John',1000,'A'),
(2,'Paul',2000,'B'),
(3,'George',1000,'B'),
(4,'Ringo',3000,'A');

SELECT dept_code , AVG(salary) average FROM employee GROUP BY dept_code;
+-----------+-----------+
| dept_code | average   |
+-----------+-----------+
| A         | 2000.0000 |
| B         | 1500.0000 |
+-----------+-----------+

CREATE VIEW dept_avg_salary AS 
SELECT dept_code
     , AVG(salary) average 
  FROM employee 
 GROUP 
    BY dept_code;

SELECT * FROM dept_avg_salary;
+-----------+-----------+
| dept_code | average   |
+-----------+-----------+
| A         | 2000.0000 |
| B         | 1500.0000 |
+-----------+-----------+    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top