1. /*    Aufg. 1: Lassen Sie sich aus der Tabelle Titel der Datenbank Verleger die Anzahl aller      */
  2. /*    Buchtitel und den Durchschnittspreis der Bücher anzeigen. [1]                               */
  3.  
  4. USE UebVerleger;
  5. SELECT count(Titel) AS Buchtitelsumme, avg(Preis) AS DurchPreis FROM Titel;
  6.  
  7. /*    Aufg. 2: Lassen Sie sich aus der Tabelle Titel der Datenbank Verleger in Gruppierung        */
  8. /*    nach Gebiet (Fachgebiet) den Durchschnittspreis, Maximalpreis, Minimalpreis und die         */
  9. /*    Anzahl der jeweils davon betroffenen Buchtitel ausgeben. [6]                                */
  10.  
  11. SELECT Gebiet, avg(Preis) AS DPreis, max(Preis) AS MaxPreis, min(Preis) AS
  12. MinPreis, count(Titel) AS AnzahlTitel FROM Titel GROUP BY Gebiet;
  13.  
  14. /*    Aufg. 3: Lassen Sie sich bezüglich der vorangegangenen Aufgabe nur die Gruppenwerte         */
  15. /*    anzeigen bei denen der Buchdurchschnittspreis höher als $13.50 ist. [4]                    */
  16.  
  17. SELECT Gebiet, avg(Preis) AS DPreis, max(Preis) AS MaxPreis, min(Preis) AS
  18. MinPreis, count(Titel) AS AnzahlTitel FROM Titel
  19. GROUP BY Gebiet
  20. HAVING avg(Preis) > 13.5;
  21.  
  22. /*    Aufg. 4: Lassen Sie sich aus der Datenbank Bibliothek alle Mitglieder ausgeben, die         */
  23. /*    sich Bücher haben reservieren lassen und die jeweilige Anzahl der reservierten Bücher!      */
  24. /*    (Anm.: Die Mitglieder sollen nur mit ihrer Mitgliedsnummer angezeigt werden.) [28]         */
  25. USE UebBibliothek;
  26. SELECT Mitglieds_Nr, count(isbn) FROM Reservierung
  27. GROUP BY Mitglieds_Nr
  28.  
  29. /*    Aufg. 5: Erweitern Sie die Ergebnisanzeige zur Aufg. 4 so, dass am Ende der Tabelle die     */
  30. /*    durchschnittliche Anzahl der reservierten Büchern je Mitglied angezeigt wird                */
  31. /*    [Ergebniswert: 3.66 ...]    */
  32.  
  33. /*    Mitglieds_Nr (Kein Spaltenname) */
  34. /*    4642 4.0                        */
  35. /*    8688 3.0                        */
  36. /*    3418 4.0                        */
  37. /*    3809 4.0                        */
  38. /*    5832 3.0                        */
  39. /*    171 3.0                         */
  40.  
  41. /*    avg                             */
  42. /*    3.66723259762309                */
  43.  
  44. /*    Hilfe: DatenTypen konvertieren mit "convert" und "compute"-Klausel. siehe Hilfe            */
  45.  
  46.  
  47. /* Bis MS SQL-Server 2008: */
  48. /* SELECT Mitglieds_Nr, Convert(float,COUNT(Mitglieds_Nr)) FROM reservierung                    */
  49. /*    GROUP BY Mitglieds_Nr                                                                     */
  50. /*    compute AVG(Convert(float,COUNT(Mitglieds_Nr)))                                           */
  51.  
  52. /*    Danach wurde compute nicht mehr unterstützt. Die Formulierung einer neuen SQL-Anweisung
  53.     ist vorteilhafter (von Stefan Wirtz):    */
  54. Select Mitglieds_Nr, count(ISBN) Reservierungen
  55. from Reservierung
  56. group by Mitglieds_Nr
  57. Union
  58. Select Null, avg(SubSelect.ISBNc)
  59. from
  60. (
  61. Select Mitglieds_Nr, cast(count(ISBN) as decimal) ISBNc
  62. from Reservierung
  63. group by Mitglieds_Nr
  64. )SubSelect
  65.  
  66. /*    Aufg. 6: Lassen Sie sich aus der Datenbank Bibliothek nur die Mitglieder ausgeben, die    */
  67. /*    sich mehr als 3 Bücher haben reservieren lassen und die jeweilige Anzahl der             */
  68. /*    reservierten Bücher! [393]                                                                */
  69.  
  70. SELECT Mitglieds_Nr, count(isbn) FROM Reservierung
  71. GROUP BY Mitglieds_Nr
  72. HAVING count(isbn) > 3
  73.  
  74. /*    Aufg. 7: Lassen Sie sich aus der Datenbank Bibliothek die Mitgliederanzahl der            */
  75. /*    erwachsenen Mitglieder in den verschiedenen WohnOrten anzeigen. [11]                      */
  76.  
  77. SELECT Ort, count(Mitglieds_Nr) AS anzMitglieder
  78. FROM Erwachsene  
  79. GROUP BY Ort
  80.  
  81. /*    Aufg. 8: Lassen Sie sich aus der Datenbank Verleger alle Orte auflisten in denen          */
  82. /*    Autoren wohnen und die Anzahl der dort lebenden Autoren. [16]                             */
  83.  
  84. USE UebVerleger;
  85. SELECT Ort, count(A_id) AS anzAutoren FROM Autoren
  86. GROUP BY Ort HAVING count(A_id) > 0;

Last modified: Wednesday, 24 April 2024, 9:16 AM