mariakal Δημοσ. 2 Ιουνίου 2010 Δημοσ. 2 Ιουνίου 2010 Συνεχίζω το διαβασμα αλλα συνεχιζονται κ οι αποριες μου. Στην πιο κάτω ασκηση, νομιζω οτι η λύση που προτεινεται για το Γ ειναι Λάθος, ενω τις λύσεις Δ & Ε δεν τις καταλαβαίνω. Μπορεί κάποιος να με βοηθήσει? Για τις πιο κατω σχεσεις: Employee (employee-name, street, city) Works (employee-name, company-name, salary) Company (company-name, city) Manages (employee-name, manager-name) Γ. Βρείτε όλους τους υπαλλήλους που ζουν στις ίδια πόλεις και στους ίδιους δρόμους με τους διευθυντές τους. Λυση: SELECT P.employee-name FROM employee P, employee R, manages M WHERE P.employee-name=M.employee-name and M.manager-name=R.employee-name and P.street=R.street and P.city=R.city Δ. Βρείτε όλους τους υπαλλήλους με μισθό μεγαλύτερο του μέσου μισθού όλων των υπαλλήλων της εταιρίας. Λυση SELECT employee-name FROM works Τ WHERE salary > (SELECT avg(salary) FROM works S WHERE T.company-name=S.company-name) Ε. Βρείτε την εταιρία με τη μικρότερη συνολική μισθοδοσία (payroll). Λύση SELECT company-name FROM works GROUP BY company-name HAVING SUM (salary) <= ALL (SELECT sum(salary) FROM works GROUP BY company-name)
Aztec Δημοσ. 2 Ιουνίου 2010 Δημοσ. 2 Ιουνίου 2010 ΤΟ Γ είναι σωστό Δ.SELECT employee-name FROM works Τ WHERE salary > (SELECT avg(salary) FROM works S WHERE T.company-name=S.company-name) Όταν έχεις correlated query θα σου πω πως γίνεται το evaluation. To εξώ query δηλαδή αυτό SELECT employee-nameFROM works Τ WHERE salary ... φέρνει ένα ένα τα υποψήφια rows. Με το υποψήφιο row που θα φέρει θα υλοποίήσει το inner query δηλαδή αυτό (SELECT avg(salary)FROM works S WHERE T.company-name=S.company-ame) Όπως φαίνεται το T.company-name έχει έρθει απο το έξω candidate row. Τέλος τσεκάρεται η ισότητα και απορρίπτεται η γίνεται αποδεκτό το row. Και η διαδικασία επαναλαμβάνεται για όλα τα υποψήφια rows. Άρα το έξω query φέρνει έναν έναν όλους του υπαλλήλους . To inner query φέρνει τον μέσο μισθό της εταιρείας που ανήκει ο υπάλληλος.Εξού και η σύνδεση του inner query με το candidate row. Και με την ισότητα αν ο υποψήφιος έχει μεγαλύτερο μισθό απο τον μέσο μισθό της εταιρείας που ανήκει θα γίνει αποδεκτός αλλιώς θα απορριφθεί. Μου φαίνεται τα λέω στρυφνά οπότε σταματάω.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.