문제

필드 (Emp_code, emp_name, Salary, 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