Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Datenbank für Schauspieler erstellen

Hier findet ihr Datenbank Übungsaufgaben aus aller Welt! Ob aus anderen Ländern oder einer Universität, Fachhochschule oder Schule gleich um die Ecke - hier könnt ihr eure Übungsaufgaben vorstellen...

Datenbank für Schauspieler erstellen

Beitragvon cuboht » So 31. Dez 2017, 13:15

Hallo,
Ich habe eine Übungsaufgabe erhalten, folgendes Schema ist gegeben.


Die komplette Aufgabenbeschreibung sieht wie folgt aus:
Zu jedem Kunden (customer) den (first_name, last_name) ausgeben und den Lieblingsschauspieler (actor) mit (acotr_id, first_name, last_name), danach Soll noch die Anzahl der Filme in denen dieser Schauspieler mitgespielt hat ausgegeben werden. Ob jetzt die Anzahl der Filme im Gesamten oder nur die Anzahl der Filme, aus denen die ausgeliehen wurden, ist nicht eindeutig formuliert. Jedoch ist die Definition für Lieblingsschauspieler folgende: Der Schauspieler, der in den meisten geliehenen Filmen mit gespielt hat.

So weit ich weiß soll es möglich sein, alles in eine (verschachtelte) SQL-Abfrage zu bekommen.
Ich versuche es seit Tagen mit MySQL (erfolglos)

Mit freundlichen Grüßen
cuboht
cuboht
 
Beiträge: 2
Registriert: So 31. Dez 2017, 13:08

Re: Datenbank für Schauspieler erstellen

Beitragvon SQLUnion » Di 2. Jan 2018, 09:49

Hallo cuboht,

bitte lade dein Schema als JPEG in einem Anhang hoch, danke.
Zu deiner Frage - ja das geht :D

Die Lösung sind SQL Joins mit denen Du Tabellen verbinden kannst.
Dein Statement benötigt SQL Joins, dann eine Gruppierung (GROUP BY) und ein HAVING-Statement.

Gruß,
SQLUnion
SQLUnion
 
Beiträge: 154
Registriert: Fr 1. Nov 2013, 15:54

Re: Datenbank für Schauspieler erstellen

Beitragvon cuboht » Di 2. Jan 2018, 22:21

Danke für die Antwort.

Im Übrigen habe ich bereits eine Lösung, vielleicht könntet ihr noch mal durch gucken,
ob das auch eleganter geht.

Code: Alles auswählen
SELECT T1.last_name, T1.first_name,
T1.actor_id, T1.a_lastname, T1.a_firstname, T1.count
FROM   (   SELECT c.customer_id, c.last_name, c.first_name,
           a.actor_id, a.last_name a_lastname, a.first_name a_firstname, COUNT(*) count
           FROM actor a
           INNER JOIN film_actor fac ON a.actor_id = fac.actor_id
           INNER JOIN inventory i ON fac.film_id = i.film_id
           INNER JOIN rental r ON i.inventory_id = r.inventory_id
           INNER JOIN customer c ON r.customer_id = c.customer_id
           GROUP BY c.customer_id, a.actor_id ) T1
WHERE T1.count = (   SELECT MAX(T3.count)
               FROM (   SELECT r.customer_id, COUNT(*) count
                     FROM actor a
                     INNER JOIN film_actor fac ON a.actor_id = fac.actor_id
                     INNER JOIN inventory i ON fac.film_id = i.film_id
                     INNER JOIN rental r ON i.inventory_id = r.inventory_id
                     GROUP BY r.customer_id, a.actor_id )T3
               WHERE T3.customer_id = T1.customer_id );
Dateianhänge
sakila_full_database_schema_diagram.png
Datenbank - Schema - SAKILA; Datei gefunden auf Google-Bilder-Suche;
cuboht
 
Beiträge: 2
Registriert: So 31. Dez 2017, 13:08


Zurück zu Übungsaufgaben aus aller Welt

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: