Question

Je voudrais créer une vue à partir d'un nom de table contenant des champs (EMP_CODE, EMP_NAME, SALAIRE, DEPT_CODE)

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

Bien que la requête ci-dessus fonctionne bien, mais dans la colonne moyenne, la même valeur 9999.9999 est stockée dans chaque ligne. Mais si je dirige la requête

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

Ça marche bien. Est-ce que quelqu'un peut m'aider

Était-ce utile?

La solution

Je ne peux pas reproduire ce résultat (sauf lorsque tous les salaires sont les mêmes). Envisagez de fournir des DDL appropriés afin que nous puissions voir comment votre table est construite ...

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 |
+-----------+-----------+    
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top