简体   繁体   English

与我给定表相关的SQL查询

[英]Sql query related to my given tables

emp table emp表

+-----+-------+-----+---------+  
| eno | ename | dno | salary  |            
+-----+-------+-----+---------+
| 101 | sam   |   1 | 1200.00 |
| 102 | ram   |   1 | 1300.00 |
| 103 | alia  |   1 | 2500.00 |
| 104 | tina  |   2 | 1300.00 |
| 105 | avni  |   2 | 1800.00 |
| 106 | suraj |   2 | 2000.00 |
| 107 | chris |   3 | 1500.00 |
| 108 | ben   |   3 | 2000.00 |
| 109 | rina  |  3  | 3300.00 |
+-----+-------+-----+---------+

Dept table
+-----+-------+-----------+
| dno | dname | location  |          
+-----+-------+-----------+                     
|   1 | csc   | new delhi |                                
|   2 | phy   | mumbai    |
|   3 | chem  | hyderabad |
+-----+-------+-----------+

I want to write a query to display department no. 我想写一个查询以显示部门编号。 ,department name, average salary of all department ,部门名称,各部门的平均工资

Here dno Is foriegn key in emp table Dno is a primary key in dept table 此处dno是emp表中的foriegn键Dno是dept表中的主键

I tried many times but sometime there is an error and sometimes wrong output My desire output is 我尝试了很多次,但有时会出现错误,有时输出错误我的期望输出是

+-----+-------+-------------+
| dno | dname | avg(salary) |
+-----+-------+-------------+
|   1 | csc   | 1666.6666   |
|   2 | phy   | 1700.0000   |
|   3 | chem  |  2266.6666  |
+-----+-------+-------------+

This is classic 'group by' usage. 这是经典的“分组依据”用法。 Try this: 尝试这个:

select d.dno , d.dname, avg(salary) 
from employee e LEFT JOIN department d on e.dno=d.dno 
GROUP BY e.dno 

Here is your query: 这是您的查询:

SELECT e.dno DNO, d.dname DNAME, AVG(e.salary) SALARY
FROM emp e, dept d
WHERE e.dno = d.dno
GROUP BY DNO

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM