Βάςεισ Δεδομζνων Ι Ενότθτα 11: SQL-Ερωτιματα Ομαδοποίθςθσ με υνζνωςθ Πινάκων Δρ. Σςιμπίρθσ Αλκιβιάδθσ
Άδειεσ Χριςθσ Σο παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ, που υπόκειται ςε άλλου τφπου άδειασ χριςθσ, θ άδεια χριςθσ αναφζρεται ρθτϊσ. Βάςεισ Δεδομζνων Ι-
Χρθματοδότθςθ Σο παρόν εκπαιδευτικό υλικό ζχει αναπτυχκεί ςτα πλαίςια του εκπαιδευτικοφ ζργου του διδάςκοντα. Σο ζργο «Ανοικτά Ακαδθμαϊκά Μακιματα ςτο ΣΕΙ Κεντρικισ Μακεδονίασ» ζχει χρθματοδοτιςει μόνο τθ αναδιαμόρφωςθ του εκπαιδευτικοφ υλικοφ. Σο ζργο υλοποιείται ςτο πλαίςιο του Επιχειρθςιακοφ Προγράμματοσ «Εκπαίδευςθ και Δια Βίου Μάκθςθ» και ςυγχρθματοδοτείται από τθν Ευρωπαϊκι Ζνωςθ (Ευρωπαϊκό Κοινωνικό Σαμείο) και από εκνικοφσ πόρουσ. Βάςεισ Δεδομζνων Ι-
Ενότθτα 11 SQL-Ερωτιματα Ομαδοποίθςθσ με υνζνωςθ Πινάκων Δρ. Σςιμπίρθσ Αλκιβιάδθσ
Περιεχόμενα ενότθτασ Σφποι ςφηευξθσ Εφαρμογι ςε ςφνκετα προβλιματα Πολλαπλοί πίνακεσ τατιςτικά με ςφνκετα ερωτιματα Ομαδοποίθςθ και ςφηευξθ 5
κοποί ενότθτασ ε αυτι τθν ενότθτα παρουςιάηονται τρόποι αντιμετϊπιςθσ ςφνκετων ερωτθμάτων όπου υπάρχουν πολλοί πίνακεσ ςε ςφηευξθ και πρζπει να γίνει υπολογιςμόσ ςυνακροιςτικϊν ςυναρτιςεων με πολλοφσ περιοριςμοφσ. Παρουςιάηονται παραδείγματα ανάλογα με τθν πραγματικά προβλιματα όπου ηθτοφνται απλά ςτατιςτικά ςτοιχεία με ςφνκετα ερωτιματα ομαδοποίθςθσ και ςφηευξθσ 6
Σφποι φηευξθσ Τπάρχουν οι εξισ τφποι ςφηευξθσ: INNER JOIN Εςωτερικι ςφηευξθ LEFT OUTER JOIN Αριςτερι εξωτερικι ςφηευξθ RIGHT OUTER JOIN Δεξιά εξωτερικι ςφηευξθ FULL OUTER JOIN Γενικι εξωτερικι ςφηευξθ 7
Άςκθςθ-Νοςοκομείο ΤΝΣΑΓΗ ΚΕ ΚΦ ΠΟΟΣΗΣΑ ΔΟΗ 101 Φ1 1000 1/ΜΕΡΑ 101 Φ2 1000 1/ΩΡΑ 104 Φ1 1000 1/ΩΡΑ 105 Φ1 1000 1/ΩΡΑ 102 Φ1 1 1/ΩΡΑ 103 Φ2 1 1/ΩΡΑ ΦΑΡΜΑΚΑ ΚΦ ΦΑΡΜΑΚΟ ΣΙΜΗ Φ1 DEPON 1 Φ2 POROAK 40 Φ3 LEX 10 ΕΠΙΚΕΨΗ ΚΕ ΑΜΚΑ ΚΓ ΗΜ/ΝΙΑ 101 1 10 1/1 102 1 30 30/1 103 1 20 1/2 104 1 10 1/3 105 2 10 1/3 ΓΙΑΣΡΟ ΚΓ ΕΠΙΘΕΣΟ ΕΙΔΙΚΟΣΗΣΑ 10 ΑΑ ΚΑΡΔΙΟΛΟΓΟ 20 ΒΒ ΟΦΘΑΛΜΙΑΣΡΟ 30 CC ΨΤΧΙΑΣΡΟ ΑΘΕΝΗ ΑΜΚΑ ΕΠΙΘΕΣΟ ΠΟΛΗ 1 ΑΑ ζρρεσ 2 ΒΒ Ακινα 3 CC ζρρεσ 8
φηευξθ Παραδείγματα: Εμφανίςτε το επίκετο, το φάρμακο, τθν ποςότθτα, και τθν θμερομθνία που πιρε τθν ςυνταγι ο αςκενισ. Select ΕΠΙΘΕΣΟ, ΦΑΡΜΑΚΟ, ΠΟΟΣΗΣΑ, ΗΜ/ΝΙΑ From ΑΘΕΝΗ INNER JOIN (ΕΠΙΚΕΨΗ, INNER JOIN (ΤΝΣΑΓΗ, INNER JOIN (ΦΑΡΜΑΚΟ ΟΝ ΦΑΡΜΑΚΟ.ΚΦ=ΤΝΣΑΓΗ.ΚΦ) ΟΝ ΤΝΣΑΓΗ.ΚΕ=ΕΠΙΚΕΨΗ.ΚΕ) ΟΝ ΑΘΕΝΗ.ΑΜΚΑ=ΕΠΙΚΕΨΗ.ΑΜΚΑ ORDER BY ΕΠΙΘΕΣΟ, ΗΜ/ΝΑΙ DESC 9
Ομαδοποίθςθ και ςφηευξθ Παραδείγματα: Εμφανίςτε το ΑΜΚΑ, το επίκετο, το πλικοσ των επιςκζψεων του κάκε αςκενι και το πλικοσ των αςκενϊν ταξινομθμζνο ςε φκίνουςα ςειρά. Select ΑΘΕΝΗ.ΑΜΚΑ, ΕΠΙΘΕΣΟ, Count( KE) AS ΠΛΗΘΟ From ΑΘΕΝΗ, ΕΠΙΚΕΨΗ Where ΑΘΕΝΗ.ΑΜΚΑ=ΕΠΙΚΕΨΗ.ΑΜΚΑ Group by ΑΘΕΝΗ.ΑΜΚΑ, ΕΠΙΘΕΣΟ Order BY ΠΛΗΘΟ Desc Εμφανίηει: ΑΜΚΑ ΕΠΙΘΕΣΟ ΠΛΗΘΟ 1 ΑΑ 4 2 ΒΒ 1 10
Ομαδοποίθςθ και ςφηευξθ Παραδείγματα: Εμφανίςτε το ΑΜΚΑ του κάκε αςκενι και το κόςτοσ των φαρμάκων που του ςυνταγοράφθςαν οι γιατροί ταξινομθμζνο ςε φκίνουςα ςειρά. Select ΑΜΚΑ, Sum(ΣΙΜΗ) AS ΚΟΣΟ From ΕΠΙΚΕΨΗ, ΦΑΡΜΑΚΟ, ΤΝΣΑΓΗ Where ΕΠΙΚΕΨΗ.ΚΕ=ΤΝΣΑΓΗ.ΚΕ And ΦΑΡΜΑΚΟ.ΚΦ= ΤΝTΑΓΗ.ΚΦ Group by ΑΜΚΑ Order BY ΚΟΣΟ Desc Εμφανίηει: ΑΜΚΑ ΚΟΣΟ 1 42.011 2 1.000 11
Ομαδοποίθςθ και ςφηευξθ Παραδείγματα: Εμφανίςτε το ΚΓ του κάκε γιατροφ, το κόςτοσ των φαρμάκων που ςυνατγογράφθςαν και ταξινομιςτε το ςε φκίνουςα ςειρά. Select ΚΓ, Sum(ΣΙΜΗ) AS ΚΟΣΟ From ΕΠΙΚΕΨΗ, ΦΑΡΜΑΚΟ, ΤΝΣΑΓΗ Where ΕΠΙΚΕΨΗ.ΚΕ=ΤΝΣΑΓΗ.ΚΕ And ΦΑΡΜΑΚΟ.ΚΦ= ΤΝΣΑΓΗ.ΚΦ Group by ΚΓ Order BY ΚΟΣΟ Desc Εμφανίηει: ΚΓ ΚΟΣΟ 10 43.000 20 10 30 1 12
Ομαδοποίθςθ και ςφηευξθ Παραδείγματα: Εμφανίςτε το ΚΦ γ και ΚΟΣΟ για το κάκε φάρμακο που ςυνταγογράφθςαν και ταξινομιςτε το ςε φκίνουςα ςειρά ΚΟΣΟΤ. Select ΚΦ, Sum(ΣΙΜΗ) AS ΚΟΣΟ From ΦΑΡΜΑΚΟ, ΤΝΣΑΓΗ Where ΦΑΡΜΑΚΟ.ΚΦ= ΤΝΣΑΓΗ.ΚΦ Group by ΚΦ Order BY ΚΟΣΟ Desc Εμφανίηει: ΦΑΡΜΑΚΑ ΚΟΣΟ Φ2 40.000 Φ1 3.000 Φ3 10 13