Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. Aufgabe 1
  2.  
  3. a, Bestimmen Sie f¨ur jede Vorlesung (Anzuzeigen: Nummer und Titel ) die Durchschnittsnote (gerundet
  4. auf drei Stellen) ¨uber alle in dem Fach stattgefundenen Pr¨ufungen.
  5.  
  6. select V.vorlNr, V.titel, ROUND(avg(note),3) from Vorlesungen V, Pruefungen P
  7. Where V.vorlNr = P.vorlNr
  8. Group by V.vorlNr
  9.  
  10. b, Bestimmen Sie Personalnummer und Namen eines jeden Professors, zusammen mit der Anzahl der unterschiedlichen
  11. Vorlesungen, die er h¨alt. Professoren ohne Vorlesung sollen mit einer Vorlesungsanzahl
  12. von 0 angegeben werden.
  13. Sortieren Sie das Ergebnis absteigend nach der Anzahl der Vorlesungen.
  14.  
  15. select persNr, name, count(distinct V.vorlNr) as AnzahlVorlesungen from Professoren P left outer join Vorlesungen V on P.persNr = V.gelesenVon
  16. Group by persNr
  17. order by AnzahlVorlesungen desc
  18.  
  19. c, Bestimmen Sie f¨ur jeden Studenten (Anzuzeigen: Matrikelnummer und Name), wieviele andere Studenten
  20. aus einem h¨oheren Semester dieser kennt (d.h. beide besuchen mindestens eine Vorlesung gemeinsam).
  21. Zeigen Sie nur Studenten an die mehr als zwei andere Studenten aus einem h¨oheren Semester
  22. kennen.
  23.  
  24. select S1.name, count(S1.name) from (Studenten S1 join hoeren H1 on S1.matrNr = H1.matrNr) join (Studenten S2 join hoeren H2 on S2.matrNr = H2.matrNr)
  25. where S1.name < S2.name and S1.semester < S2.semester and H1.vorlNr = H2.vorlNr
  26. Group by S1.name
  27. having count(S1.name)>2
  28.  
  29. d, Bestimmen Sie die Professoren (Anzuzeigen: Personalnummer und Name), f¨ur die mindestens zwei Studenten
  30. mindestens drei Vorlesungen des jeweiligen Professors h¨oren.
  31. Tipp: Erstellen Sie passende Views, um die Anfrage ¨ubersichtlicher zu gestalten. Benutzen Sie hierzu die
  32. Syntax aus der Vorlesung!
  33.  
  34. (bewerten)
  35. select persNr, name from Professoren P
  36. join Vorlesungen V on P.persNr = V.gelesenVon
  37. join hoeren H on V.vorlNr = H.vorlNr
  38. Group by persNr
  39. having count(distinct H.matrNr)>2 and count(distinct V.vorlNr)>3
  40.  
  41. (Nicht bewerten)
  42. Oder Übersichtlicher mit Views:
  43. War der Tipp der bei der Aufgabe stand so gemeint?
  44.  
  45. create view ProfessorenMitVorlesung as
  46. select persNr, name, V.vorlNr from Professoren P
  47. join Vorlesungen V on P.persNr = V.gelesenVon
  48.  
  49. create view ProfessorenMitVorlesungDieGehoertWerden as
  50. select persNr, name from ProfessorenMitVorlesung P
  51. join hoeren H on P.vorlNr = H.vorlNr
  52. Group by persNr
  53. having count(distinct H.matrNr)>2 and count(distinct P.vorlNr)>3
  54.  
  55. select * from ProfessorenMitVorlesungDieGehoertWerden
  56.  
  57. e, Bestimmen Sie f¨ur jede Vorlesung (Anzuzeigen: Nummer und Titel), welche mindestens eine andere Vorlesung
  58. voraussetzt, die prozentualen Anteile (gerundet auf zwei Nachkommastellen) der teilnehmenden
  59. Studenten pro Semester.
  60.  
  61. Create view VorlesungMitVoraussetzung as
  62. select * from Vorlesungen join Voraussetzungen on vorlNr = vorlesung
  63. natural join hoeren
  64. natural join Studenten
  65.  
  66. Create View VorlesungHoerenPerSemester as
  67. Select semester, vorlNr, count(matrNr) as AnzahlStudPerSem from VorlesungMitVoraussetzung
  68. Group by semester, vorlNr
  69.  
  70. Create View VorlesungHoerenStudenten as
  71. select vorlNr, titel, count(name) as AnzahlStudInsgesamt from VorlesungMitVoraussetzung
  72. Group by vorlNr
  73.  
  74. Create View Final as
  75. select * from VorlesungHoerenPerSemester natural join VorlesungHoerenStudenten
  76.  
  77. select vorlNr, titel, semester, Round(((AnzahlStudPerSem/AnzahlStudInsgesamt)*100),2) as Prozent from Final
  78.  
  79.  
  80. Mit ist nicht ganz klar wie ich hier schneller/effizienter arbeiten kann. Muss ich wirklich über die zwei unterschiedlichen Views(VorlesungHoerenPerSemester und VorlesungHoerenStudenten) gehen um mein Ziel zu erreichen?
  81. Einmal die Anzahl der Studenten anhand der Semester und einmal die Anzahl der Studenten insgesamt in der Vorlesung.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement