2016-05-19 12 views
0

So habe ich eine Tabelle, die Gehälter aller Angestellten auflistet. Eine weitere Tabelle, die die Abteilungen auflistet und eine weitere Tabelle, die die Mitarbeiter der Abteilung auflistet. Die gemeinsame Spalte zwischen Tabelle Gehälter und Tabelle dep_emp ist emp_no. Die gemeinsame Spalte zwischen Tabelle Abteilungen und dep_emp ist dept_no. Ich brauche das aktuelle durchschnittliche Gehalt einer bestimmten AbteilungmySQL: Wie man Berechnungen über verschiedene Tabellen durchführt

SELECT COUNT(emp_no) 
FROM dept_emp 
WHERE dept_no='d001'; -- this gives me the count that i need to divide the salary by 

Aber wie würde ich die Verbindung zwischen dieser bestimmten Tabelle und das anderes machen zu bekommen? Sollte ich ein INNER JOIN

Antwort

0

Ja, müssen Sie die Felder zwischen den Tabellen verknüpft mit Ihnen erwähnt, aber Sie können die avg() Funktion verwenden, um den Durchschnitt zu erhalten:

select d.dept_no, avg(e.salary) 
from departments d 
left join dept_emp de on d.dept_no=de.dept_no 
left join employees e on de.emp_no=e.emp_no 
group by d.tept_no 

Ob Sie links benutzen oder Die innere Verbindung hängt von Ihren genauen Anforderungen ab.

Verwandte Themen