Βάςεισ Δεδομζνων Ι Ενότθτα 10: Συνακροιςτικζσ ςυναρτιςεισ Δρ. Σςιμπίρθσ Αλκιβιάδθσ
Άδειεσ Χριςθσ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ, που υπόκειται ςε άλλου τφπου άδειασ χριςθσ, θ άδεια χριςθσ αναφζρεται ρθτώσ. Βάςεισ Δεδομζνων Ι-
Χρθματοδότθςθ Σο παρόν εκπαιδευτικό υλικό ζχει αναπτυχκεί ςτα πλαίςια του εκπαιδευτικοφ ζργου του διδάςκοντα. Σο ζργο «Ανοικτά Ακαδθμαϊκά Μακιματα ςτο ΣΕΙ Κεντρικισ Μακεδονίασ» ζχει χρθματοδοτιςει μόνο τθ αναδιαμόρφωςθ του εκπαιδευτικοφ υλικοφ. Σο ζργο υλοποιείται ςτο πλαίςιο του Επιχειρθςιακοφ Προγράμματοσ «Εκπαίδευςθ και Δια Βίου Μάκθςθ» και ςυγχρθματοδοτείται από τθν Ευρωπαϊκι Ζνωςθ (Ευρωπαϊκό Κοινωνικό Σαμείο) και από εκνικοφσ πόρουσ. Βάςεισ Δεδομζνων Ι-
Ενότθτα 10 Συνακροιςτικζσ ςυναρτιςεισ Δρ. Σςιμπίρθσ Αλκιβιάδθσ
Περιεχόμενα ενότθτασ Ποιζσ είναι οι ςυνακροιςτικζσ ςυναρτιςεισ Max-Min AVG SUM COUNT Ερωτιματα Ομαδοποίθςθσ Εμφωλευμζνα Ερωτιματα 5
Σκοποί ενότθτασ κοπόσ τθσ ενότθτασ αυτισ είναι θ ειςαγωγι ςτισ ςυνακροιςτικζσ ςυναρτιςεισ. Με απλά ερωτιματα και με τθ χριςθ αυτών των ςυναρτιςεων τα αποτελζςματα είναι εντυπωςιακά. ε ελάχιςτο χρόνο και με λίγεσ γραμμζσ κώδικα μποροφν να υπολογιςτοφν ςτατιςτικά από πίνακεσ μεγάλου όγκου δεδομζνων. 6
Συνακροιςτικζσ ςυναρτιςεισ Η Sql ζχει πζντε ςυνακροίςτθκεσ ςυναρτιςεισ: Μζςοσ όροσ: avg(a) (μόνο ςε αρικμοφσ) Ελάχιςτο: min(a) Μζγιςτο: max(a) Άκροιςμα: sum(a) (μόνο ςε αρικμοφσ) Πλικοσ: count(a) Σχόλιο! Σο A είναι γνώριςμα 7
Άςκθςθ-Εργαηόμενοσ Εργαηόμενοσ ΚΕ Επίκετο Μιςκόσ Πόλθ Σμιμα 1 ΑΑ 1.000 ζρρεσ Αποκικθ 2 ΒΒ 2.000 Ακινα Πωλιςεισ 3 CC 1.000 ζρρεσ Λογιςτιριο 4 DD 1.500 Θεςςαλονίκθ Πωλιςεισ 8
Συνάρτθςθ Sum Γενικι ςφνταξθ τθσ ςυνάρτθςθσ Sum: Select Sum(Πεδίο ) As φνολο From Πίνακασ Where Περιοριςμόσ Να βρεκεί το ςφνολο των μιςκών των εργαηομζνων κάκε μινα. Select Sum(Μιςκόσ ) As φνολο **** Ψευδώνυμο πεδίου ι πίνακα με τθν εντολι AS ****** θ εντολι AS αλλάηει το όνομα ενόσ πεδίου ι μιασ ζκφραςθσ. Εφαρμόηεται ςτο select και ςτο from 9
Συνάρτθςθ Avg Γενικι ςφνταξθ τθσ ςυνάρτθςθσ Avg: Select Avg(Πεδίο ) As Μζςοσ όροσ From Πίνακασ Where Περιοριςμόσ Να βρεκεί ο μζςοσ όροσ του μιςκοφ κάκε μινα Select Avg(Μιςκόσ ) As MO Να βρεκεί ο μζςοσ όροσ των μιςκών κάκε μινα που παίρνουν οι Σερραίοι. Select Avg(Μιςκόσ ) As MO Where Πόλθ= ζρρεσ Where Πόλθ>= ζρρεσ or Πόλθ<= Θεςςαλονίκθ ----- ποιο το αποτζλεςμα? 10
Συνάρτθςθ Count Γενικι ςφνταξθ τθσ ςυνάρτθςθσ Avg: Παραδείγματα Να βρεκεί το πλικοσ των εργαηομζνων. Select Count(Πεδίο ) As Πλικοσ From Πίνακασ Where Περιοριςμόσ Select Count(KE ) As Πλικοσ Να βρεκεί το πλικοσ των μοναδικών μιςκών των εργαηομζνων. Select Count(Μιςκόσ Distinct ) As πλικοσ ΣΧΟΛΙΟ! Σο Count(*) μετράει το πλικοσ γραμμών. 11
Συναρτιςεισ Min-Max Γενικι ςφνταξθ των Min-Max: Select Min(Πεδίο ) As Ελάχιςτοσ From Πίνακασ Where Περιοριςμόσ Select Max(Πεδίο ) As Μζγιςτοσ From Πίνακασ Where Περιοριςμόσ Παράδειγμα Να βρεκεί ο ελάχιςτοσ μιςκόσ των εργαηομζνων. Select Min(Μιςκόσ ) As Ελάχιςτοσ Ομοίωσ και για τθν ςυνάρτθςθ Max 12
Εμφωλευμζνα ερωτιματα Ζνα ερώτθμα είναι εμφωλευμζνο όταν περικλείεται μζςα ςε ζνα άλλο. Παράδειγμα Να εμφανιςτεί το επίκετο αυτοφ που ζχει τον μεγαλφτερο μιςκό. Select Επίκετο, Μιςκόσ Where Μιςκόσ=(Select Max(Μιςκόσ) As Μζγιςτοσ From(Εργαηόμενοσ) 13
Ομαδοποίθςθ με ςυνακροιςτικζσ Παραδείγματα: Να υπολογιςτεί για κάκε τμιμα ποία είναι θ μιςκοδοςία που δίνεται. Select Σμιμα,Sum (Μιςκόσ) As φνολο Group by Σμιμα Για κάκε πόλθ πόςοι εργαηόμενοι παίρνουν 1500 ευρώ και πάνω. Select Πόλθ,Count (*) As Αρικμόσ Where Μιςκόσ >= 1.500 Group by Πόλθ ςυναρτιςεισ SELECT ΠΕΔΙΟ1, ΠΕΔΙΟ2,ΤΝΑΡΣΗΗ(ΠΕΔΙΟ3) As ΨΕΤΔΩΝΤΜΟ FROM Πίνακασ WHERE Περιοριςμόσ GROUP BY ΠΕΔΙΟ1, ΠΕΔΙΟ2 HAVING ΠΕΡΙΟΡΙΜΟ ΟΜΑΔΟΠΟΙΗΗ 14
Εμφωλευμζνα ερωτιματα Παραδείγματα: Να εμφανιςτεί ο μζγιςτοσ μιςκόσ. Select Max(Μιςκόσ) Βρείτε τα ςτοιχεία των εργαηομζνων που ζχουν το μζγιςτο μιςκό. Select * Where Μιςκόσ=(Select Max(Μιςκόσ) ) Order by KE 15
Εμφωλευμζνα ερωτιματα Παραδείγματα: Ποιοι είναι οι εργαηόμενοι που είναι από τθν ίδια πόλθ που είναι και ο εργαηόμενοσ ΑΑ. Select * Where Πόλθ=(Select Πόλθ Where Επίκετο = ΑΑ ) 16