الدالة المتوسطة في 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

أنه يعمل بشكل جيد.هل يستطيع احد مساعدتي

هل كانت مفيدة؟

المحلول

لا أستطيع تكرار هذه النتيجة (إلا عندما تكون جميع الرواتب متماثلة).فكر في توفير DDLs المناسبة حتى نتمكن من رؤية كيفية إنشاء الجدول الخاص بك...

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