<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL lernen</title>
	<atom:link href="https://sql-lernen.online/feed/" rel="self" type="application/rss+xml" />
	<link>https://sql-lernen.online/</link>
	<description>mit PostgreSQL</description>
	<lastBuildDate>Fri, 03 Jan 2025 12:37:31 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://sql-lernen.online/wp-content/uploads/2024/12/postgresql-150x150.png</url>
	<title>SQL lernen</title>
	<link>https://sql-lernen.online/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Vorbereitung Beispielprojekt</title>
		<link>https://sql-lernen.online/tutorial/tabellen/vorbereitung-beispielprojekt/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 13:54:03 +0000</pubDate>
				<category><![CDATA[Tabellen]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=791</guid>

					<description><![CDATA[<h2>Neue Übungsdatenbank für das Experimentieren mit eigenen Tabellen</h2>
<p>Bevor wir loslegen, erstellen Sie am besten eine eigene Übungsdatenbank, in welcher Sie die Tabellen des jetzt folgenden Seminarabschnitts anlegen können, ohne dabei mit eventuell bereits vorhandenen Tabellen des DVD-Verleihs zu kollidieren.></p>
<p>Wenn Sie sich nicht mehr erinnern: Das Anlegen einer Datenbank ist in „Beispieldatenbank: DVD-Verleih“ beschrieben. Geben Sie der neu zu erstellenden Datenbank aber unbedingt einen anderen Namen. Ich habe meine Datenbank <code>tutorial</code> genannt. Sie können Ihre Datenbank natürlich anders benennen. Sollten Sie jedoch über den Datenbanknamen <code>tutorial</code> stolpern, dann wissen Sie, welche Datenbank ich damit meine.</p>
<h2>Projektvorstellung</h2>
<p>Da Sie sich bereits in die Thematik des Verleihens von Gegenständen eingearbeitet haben, wollen wir eine Leihbücherei modellieren und implementieren. Dabei werden Sie viele neue SQL-Vokabeln lernen. Um Ihnen das Erlernen dieser Vokabeln zu erleichtern, selbstgewählte Bezeichner leichter von den PostgreSQL-Bezeichnern differenzieren zu können, habe ich mich entschieden, für selbstdefinierte Objekte deutsche Bezeichner zu verwenden. </p>
<p>Der Beitrag <a href="https://sql-lernen.online/tutorial/tabellen/vorbereitung-beispielprojekt/">Vorbereitung Beispielprojekt</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Neue Übungsdatenbank für das Experimentieren mit eigenen Tabellen</h2>

<p>Bevor wir loslegen, erstellen Sie am besten eine eigene Übungsdatenbank, in welcher Sie die Tabellen des jetzt folgenden Seminarabschnitts anlegen können, ohne dabei mit eventuell bereits vorhandenen Tabellen des DVD-Verleihs zu kollidieren.>

<p>Wenn Sie sich nicht mehr erinnern: Das Anlegen einer Datenbank ist in „Beispieldatenbank: DVD-Verleih“ beschrieben. Geben Sie der neu zu erstellenden Datenbank aber unbedingt einen anderen Namen. Ich habe meine Datenbank <code>tutorial</code> genannt. Sie können Ihre Datenbank natürlich anders benennen. Sollten Sie jedoch über den Datenbanknamen <code>tutorial</code> stolpern, dann wissen Sie, welche Datenbank ich damit meine.</p>


<h2>Projektvorstellung</h2>

<p>Da Sie sich bereits in die Thematik des Verleihens von Gegenständen eingearbeitet haben, wollen wir eine Leihbücherei modellieren und implementieren. Dabei werden Sie viele neue SQL-Vokabeln lernen. Um Ihnen das Erlernen dieser Vokabeln zu erleichtern, selbstgewählte Bezeichner leichter von den PostgreSQL-Bezeichnern differenzieren zu können, habe ich mich entschieden, für selbstdefinierte Objekte deutsche Bezeichner zu verwenden. In der Programmierpraxis, insbesondere dann, wenn Sie beispielsweise an englisch-sprachigen Open-Source-Projekten teilnehmen, ist Englisch die bevorzugte Sprache. Um Ihnen das Leben ein wenig zu erleichtern, mache ich hier aber eine Ausnahme.</p>

<figure id="attachment_796" aria-describedby="caption-attachment-796" style="width: 1024px" class="wp-caption aligncenter"><a href="https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek.png"><img fetchpriority="high" decoding="async" src="https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek-1024x645.png" alt="ER-Modell der zu erstellenden Bibliotheksdatenbank" width="1024" height="645" class="size-large wp-image-796" srcset="https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek-1024x645.png 1024w, https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek-300x189.png 300w, https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek-768x484.png 768w, https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek-1536x967.png 1536w, https://sql-lernen.online/wp-content/uploads/2025/01/Bibliothek-2048x1290.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption id="caption-attachment-796" class="wp-caption-text">ER-Modell der zu erstellenden Bibliotheksdatenbank</figcaption></figure>

<p>In einer Bibliothek gibt es Bücher, die von Lesern ausgeliehen werden können. &#8211; Klar. Die Leser, die in verschiedenen Regionen, rund um unsere Bibliothek wohnhaft sind, können aber nicht nur Bücher ausleihen, sie können sich auch Buchtitel vormerken. Und hier haben wir zwei Begriffe, die wir im Weiteren wohl unterscheiden müssen, Bücher und Buchtitel. Bücher sind die realen Buchexemplare, die in der Bibliothek ausleihbar sein oder, wenn es sich um Präsenzexemplare handelt (<code>leihdauer</code> gleich 0), zumindest eingesehen und vor Ort gelesen werden können.</p>

<p>Bücher sind Instanzen von Ausgaben, die einen Verlag haben und jeweils einen Buchtitel repräsentieren. Dabei kann ein Titel von mehreren Verlagen und/oder mehreren Editionen (Auflagen) realisiert werden. Ein Buchtitel kann keinen, einen oder auch mehrere Autoren haben. Ein Buchtitel hat keinen Autor, wenn ein solcher nicht bekannt ist.</p

<p>Die Haupt-Geschäftsvorgänge sind sehr einfach gestaltet. Zwecks Ausleihe wird ein Buch in der Tabelle <code>ausleihungen</code> eingetragen, zusammen mit der Nummer des Lesers und dem Ausleihdatum. Ein Leser kann zwar mehrere Bücher ausleihen bzw. ausgeliehen haben, ein Buch kann zu einer Zeit aber nur einfach ausgeliehen sein. Bei einem Ausleihvorgang sollen die Ausleihstatistiken von Lesern und Buchexemplaren jeweils um ein erhöht werden. Hier und im Kapitel „<a href="/Kategorie/tutorial/daten/">Daten</a>“ werden wir das manuell machen. Später lernen Sie, wenn wir gespeicherte Funktionen und Trigger behandeln, wie Sie das automatisiert leisten können.</p>

<p>Die Rückgabe eines Buches erfolgt einfach dadurch, den Datensatz des betreffenden Buches in der Ausleihtabelle zu löschen.</p>



<div class="wp-block-buttons is-content-justification-space-between is-layout-flex wp-container-core-buttons-is-layout-3d213aab wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-white-color has-text-color has-background wp-element-button" href="/tutorial/sql-grundlagen/unterabfragen/" style="background-color:#13aff0">« Unterabfragen</a></div>



<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-white-color has-text-color has-background wp-element-button" href="#" style="background-color:#13aff0">### »</a></div>
</div>


<p>Der Beitrag <a href="https://sql-lernen.online/tutorial/tabellen/vorbereitung-beispielprojekt/">Vorbereitung Beispielprojekt</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Musterlösungen zu „Unterabfragen“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-unterabfragen/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 12:12:23 +0000</pubDate>
				<category><![CDATA[Musterlösungen]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=763</guid>

					<description><![CDATA[<p>Musterlösungen zu „Unterabfragen“</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-unterabfragen/">Musterlösungen zu „Unterabfragen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Film-Ranking</h2>
<p>Erstellen Sie eine Liste der 3 am häufigsten ausgeliehenen Filmtitel. Beachten Sie eventuelle Mehrfachnennungen der Ausleihzahlen.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT DISTINCT
    f.title,
    count(i.film_id) AS count
FROM rental    r
JOIN inventory i ON i.inventory_id = r.inventory_id
JOIN film f ON i.film_id = f.film_id
GROUP BY
    f.title
HAVING count(i.film_id) >= (
    SELECT DISTINCT -- Ausleihzahl  für TOP-3 ermitteln
        count(i.film_id) AS count
    FROM rental    r
    JOIN inventory i ON i.inventory_id = r.inventory_id
    GROUP BY
        i.film_id
    ORDER BY
        count DESC
    LIMIT 1 OFFSET 2
                           )
ORDER BY count DESC, title;</pre><p></p>
<pre class="crayon:false">
+-------------------+-----+
|title              |count|
+-------------------+-----+
|Bucket Brotherhood |34   |
|Rocketeer Mother   |33   |
|Forward Temple     |32   |
|Grit Clockwork     |32   |
|Juggler Hardly     |32   |
|Ridgemont Submarine|32   |
|Scalawag Duck      |32   |
+-------------------+-----+
</pre>
<h2>2. Kunden-Umsatzanalyse</h2>
<p>Wieviel Umsatz wird von Kunden generiert, die mehrmals 30 Ausleihungen haben? Gruppieren Sie nach der Anzahl der Verleihvorgänge und zeigen Sie die Anzahl der sich dahinter verbergenden Kunden,<br />
den Gesamtumsatz der Gruppe sowie Durchschnittsumsatz pro Kunde.</p>
<p>Das erwartete Ergebnis sieht wie folgt aus:</p>
<pre class="crayon:false">
+-------+---------+-------+--------------------+
|rentals|customers|amount |avg                 |
+-------+---------+-------+--------------------+
|46     |1        |216.54 |216.54              |
|45     |1        |221.55 |221.55              |
|42     |2        |371.16 |185.58              |
|41     |1        |155.59 |155.59              |
|40     |2        |332.2  |166.1               |
|39     |3        |564.83 |188.2766666666666667|
|38     |4        |661.48 |165.37              |
|37     |4        |619.52 |154.88              |
|36     |6        |864.84 |144.14              |
|35     |13       |1943.45|149.4961538461538462|
|34     |21       |2936.86|139.8504761904761905|
|33     |19       |2670.73|140.5647368421052632|
|32     |35       |4687.79|133.9368571428571429|
|31     |22       |2852.18|129.6445454545454545|
+-------+---------+-------+--------------------+
</pre>
<p>Augenscheinlich gibt es ein paar sehr filmbegeisterte Kunden. Die Zahlen sind nicht ganz realistisch &#8211; was soll&#8217;s.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    r.rentals
  , count(DISTINCT r.customer_id)                 AS customers
  , sum(p.amount)                                 AS amount
  , sum(p.amount) / count(DISTINCT r.customer_id) AS avg
FROM (
    SELECT
        customer_id
      , count(rental_id) AS rentals
    FROM rental
    GROUP BY
        customer_id
    HAVING count(rental_id) > 30
     )       r
JOIN payment p ON p.customer_id = r.customer_id
GROUP BY
    r.rentals
ORDER BY
    r.rentals DESC;</pre><p></p>
<h2>3. Top-3-Filme</h2>
<p>Erstellen Sie eine Top-3-Liste der am häufigsten verliehenen Filme inkl. deren Schauspielern. Beachten Sie, dass sich mehrere Filme einen Rang teilen können.</p>
<p>Das erwartete Resultat sieht wie folgt aus:</p>
<pre class="crayon:false">
+-------+-------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|rentals|title              |actors                                                                                                                                |
+-------+-------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|34     |Bucket Brotherhood |Kirsten Akroyd, Rip Crawford, Charlize Dench, Tim Hackman, Gary Phoenix, Burt Temple                                                  |
|33     |Rocketeer Mother   |Meryl Allen, Chris Bridges, Judy Dean, Warren Jackman, Tom Miranda, Jayne Silverstone, Renee Tracy                                    |
|32     |Forward Temple     |Greg Chaplin, Sean Williams, Rip Winslet                                                                                              |
|32     |Grit Clockwork     |Kevin Garland, Geoffrey Heston, Cameron Zellweger                                                                                     |
|32     |Juggler Hardly     |Meryl Gibson, Ewan Gooding, Ed Guiness, Penelope Monroe, Salma Nolte, Milla Peck, Penelope Pinkett, Morgan Williams, Cameron Zellweger|
|32     |Ridgemont Submarine|Michael Bolger, Julianne Dench, Julia Fawcett, Whoopi Hurt, Johnny Lollobrigida                                                       |
|32     |Scalawag Duck      |Jude Cruise, Chris Depp, Reese Kilmer, Christian Neeson, Groucho Sinatra                                                              |
+-------+-------------------+--------------------------------------------------------------------------------------------------------------------------------------+
</pre>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT -- Top-3 Filme mit Schauspielern
    top3_films.rentals
  , title
  , string_agg(first_name || ' ' || last_name, ', ' ORDER BY last_name, first_name) AS actors
FROM film       f
JOIN film_actor fa ON f.film_id = fa.film_id
JOIN actor      a ON fa.actor_id = a.actor_id
JOIN (
         -- Anzahl der Ausleihungen pro Film in Top-3
         SELECT
             count(rental_id) AS rentals
           , f.film_id
         FROM rental    r
         JOIN inventory i ON r.inventory_id = i.inventory_id
         JOIN film      f ON f.film_id = i.film_id
         GROUP BY
             f.film_id
           , title
         HAVING count(rental_id) >= (
             -- Ausleihhäufigkeiten für Top-3
             SELECT DISTINCT 
                             count(r.rental_id) AS rentals
             FROM rental    r
             JOIN inventory i ON i.inventory_id = r.inventory_id
             JOIN film      f ON i.film_id = f.film_id
             GROUP BY
                 f.film_id
             ORDER BY
                 rentals DESC
             LIMIT 1 OFFSET 2
                                    )
     )          top3_films ON f.film_id = top3_films.film_id
GROUP BY
    top3_films.rentals
  , title
ORDER BY
    top3_films.rentals DESC;</pre><p></p>
<h2>4. Schauspieler in Erfolgsfilmen</h2>
<p>Welche Schauspieler, ohne Mehrfachnennungen, haben in den Top-Filmen aus Aufgabe 3 mitgewirkt?</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT DISTINCT
    first_name
  , last_name
FROM film       f
JOIN film_actor fa ON f.film_id = fa.film_id
JOIN actor      a ON fa.actor_id = a.actor_id
JOIN (
         -- Anzahl der Ausleihungen pro Film in Top-3
         SELECT
             count(rental_id) AS rentals
           , f.film_id
         FROM rental    r
         JOIN inventory i ON r.inventory_id = i.inventory_id
         JOIN film      f ON f.film_id = i.film_id
         GROUP BY
             f.film_id
           , title
         HAVING count(rental_id) >= (
             -- Ausleihhäufigkeiten für Top-3
             SELECT DISTINCT
                 count(r.rental_id) AS rentals
             FROM rental    r
             JOIN inventory i ON i.inventory_id = r.inventory_id
             JOIN film      f ON i.film_id = f.film_id
             GROUP BY
                 f.film_id
             ORDER BY
                 rentals DESC
             LIMIT 1 OFFSET 2
                                    )
     )          top3_films ON f.film_id = top3_films.film_id
ORDER BY
    last_name
  , first_name;</pre><p></p>
<pre class="crayon:false">
+----------+------------+
|first_name|last_name   |
+----------+------------+
|Kirsten   |Akroyd      |
|Meryl     |Allen       |
|Michael   |Bolger      |
|Chris     |Bridges     |
|Greg      |Chaplin     |
|Rip       |Crawford    |
|Jude      |Cruise      |
|Judy      |Dean        |
|Charlize  |Dench       |
|Julianne  |Dench       |
|Chris     |Depp        |
|Julia     |Fawcett     |
|Kevin     |Garland     |
|Meryl     |Gibson      |
|Ewan      |Gooding     |
|Ed        |Guiness     |
|Tim       |Hackman     |
|Geoffrey  |Heston      |
|Whoopi    |Hurt        |
|Warren    |Jackman     |
|Reese     |Kilmer      |
|Johnny    |Lollobrigida|
|Tom       |Miranda     |
|Penelope  |Monroe      |
|Christian |Neeson      |
|Salma     |Nolte       |
|Milla     |Peck        |
|Gary      |Phoenix     |
|Penelope  |Pinkett     |
|Jayne     |Silverstone |
|Groucho   |Sinatra     |
|Burt      |Temple      |
|Renee     |Tracy       |
|Morgan    |Williams    |
|Sean      |Williams    |
|Rip       |Winslet     |
|Cameron   |Zellweger   |
+----------+------------+
</pre>
<p></p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-unterabfragen/">Musterlösungen zu „Unterabfragen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Übungen zu „Unterabfragen“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-unterabfragen/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 12:11:58 +0000</pubDate>
				<category><![CDATA[Übungsaufgaben]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=761</guid>

					<description><![CDATA[<p>4 Übungsaufgaben</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-unterabfragen/">Übungen zu „Unterabfragen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Film-Ranking</h2>

<p>Erstellen Sie eine Liste der 3 am häufigsten ausgeliehenen Filmtitel. Beachten Sie eventuelle Mehrfachnennungen der Ausleihzahlen.</p>


<h2>2. Kunden-Umsatzanalyse</h2>

<p>Wieviel Umsatz wird von Kunden generiert, die mehrmals 30 Ausleihungen haben? Gruppieren Sie nach der Anzahl der Verleihvorgänge und zeigen Sie die Anzahl der sich dahinter verbergenden Kunden,
den Gesamtumsatz der Gruppe sowie Durchschnittsumsatz pro Kunde.</p>

<p>Das erwartete Ergebnis sieht wie folgt aus:</p>

<pre class="crayon:false">
+-------+---------+-------+--------------------+
|rentals|customers|total  |avg                 |
+-------+---------+-------+--------------------+
|46     |1        |211.55 |211.55              |
|45     |1        |208.58 |208.58              |
|42     |2        |356.21 |178.105             |
|41     |1        |149.61 |149.61              |
|40     |2        |292.33 |146.165             |
|39     |3        |540.89 |180.2966666666666667|
|38     |4        |611.62 |152.905             |
|37     |4        |564.66 |141.165             |
|36     |6        |821.97 |136.995             |
|35     |13       |1716   |132                 |
|34     |21       |2766.32|131.7295238095238095|
|33     |19       |2459.27|129.4352631578947368|
|32     |35       |4316.7 |123.3342857142857143|
|31     |22       |2544.94|115.6790909090909091|
+-------+---------+-------+--------------------+
</pre>

<p>Augenscheinlich gibt es ein paar sehr filmbegeisterte Kunden. Die Zahlen sind nicht ganz realistisch &#8211; was soll&#8217;s.</p>



<h2>3. Top-3-Filme</h2>

<p>Erstellen Sie eine Top-3-Liste der am häufigsten verliehenen Filme inkl. deren Schauspielern. Beachten Sie, dass sich mehrere Filme einen Rang teilen können.</p>

<p>Das erwartete Resultat sieht wie folgt aus:</p>

<pre class="crayon:false">
+-------+-------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|rentals|title              |actors                                                                                                                                |
+-------+-------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|34     |Bucket Brotherhood |Kirsten Akroyd, Rip Crawford, Charlize Dench, Tim Hackman, Gary Phoenix, Burt Temple                                                  |
|33     |Rocketeer Mother   |Meryl Allen, Chris Bridges, Judy Dean, Warren Jackman, Tom Miranda, Jayne Silverstone, Renee Tracy                                    |
|32     |Forward Temple     |Greg Chaplin, Sean Williams, Rip Winslet                                                                                              |
|32     |Grit Clockwork     |Kevin Garland, Geoffrey Heston, Cameron Zellweger                                                                                     |
|32     |Juggler Hardly     |Meryl Gibson, Ewan Gooding, Ed Guiness, Penelope Monroe, Salma Nolte, Milla Peck, Penelope Pinkett, Morgan Williams, Cameron Zellweger|
|32     |Ridgemont Submarine|Michael Bolger, Julianne Dench, Julia Fawcett, Whoopi Hurt, Johnny Lollobrigida                                                       |
|32     |Scalawag Duck      |Jude Cruise, Chris Depp, Reese Kilmer, Christian Neeson, Groucho Sinatra                                                              |
+-------+-------------------+--------------------------------------------------------------------------------------------------------------------------------------+
</pre>


<h2>4. Schauspieler in Erfolgsfilmen</h2>

<p>Welche Schauspieler, ohne Mehrfachnennungen, haben in den Top-Filmen aus Aufgabe 3 mitgewirkt?</p>


<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-text-color has-background wp-element-button" href="/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-unterabfragen/" style="background-color:#0b7cac" rel="nofollow">Musterlösungen</a></div>
</div>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-unterabfragen/">Übungen zu „Unterabfragen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Musterlösungen zu „Mengen-Operationen“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-mengen-operationen/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 10:55:34 +0000</pubDate>
				<category><![CDATA[Musterlösungen]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=738</guid>

					<description><![CDATA[<p>Musterlösungen zu „Mengen-Operationen“</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-mengen-operationen/">Musterlösungen zu „Mengen-Operationen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Schauspieler und Filmgenres</h2>
<p>Welche Schauspieler haben nicht in Action-Filmen mitgewirkt?</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    first_name
  , last_name
FROM actor
EXCEPT
SELECT
    first_name
  , last_name
FROM film          fi
JOIN film_category fc ON fi.film_id = fc.film_id
JOIN category      ca ON ca.category_id = fc.category_id
JOIN film_actor    fa ON fi.film_id = fa.film_id
JOIN actor         ac ON fa.actor_id = ac.actor_id
WHERE name = 'Action'
ORDER BY
    last_name
  , first_name;</pre><p></p>
<pre class="crayon:false">
+----------+-----------+
|first_name|last_name  |
+----------+-----------+
|Debbie    |Akroyd     |
|Cuba      |Allen      |
|Harrison  |Bale       |
|Scarlett  |Bening     |
|Liza      |Bergman    |
|Goldie    |Brody      |
|Emily     |Dee        |
|Lucille   |Dee        |
|Gregory   |Gooding    |
|Penelope  |Guiness    |
|Tim       |Hackman    |
|Meg       |Hawke      |
|Kenneth   |Hoffman    |
|Whoopi    |Hurt       |
|Jane      |Jackman    |
|Albert    |Johansson  |
|Ray       |Johansson  |
|Milla     |Keitel     |
|Fay       |Kilmer     |
|Cary      |Mcconaughey|
|Gene      |Mckellen   |
|Tom       |Miranda    |
|Christian |Neeson     |
|Warren    |Nolte      |
|Rita      |Reynolds   |
|John      |Suvari     |
|Burt      |Temple     |
|Russell   |Temple     |
|Thora     |Temple     |
|Kenneth   |Torn       |
|Groucho   |Williams   |
|Ben       |Willis     |
|Fay       |Wood       |
|Cameron   |Wray       |
+----------+-----------+
</pre>
<h2>2. Kundenbedarfsprüfung</h2>
<ol>
<li>Welche Filme haben wir aus den populärsten Filmen im Bestand?</li>
<li>Falls unser Bestand die Liste der populärsten Filme nicht abdeckt, welche sollten wir beschaffen?</li>
</ol>
<p>Zu 1.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    title
FROM most_popular_film
JOIN film f ON most_popular_film.film_id = f.film_id
INTERSECT
SELECT
    title
FROM inventory
JOIN film f ON f.film_id = inventory.film_id;</pre><p></p>
<pre class="crayon:false">
+-------------------+
|title              |
+-------------------+
|Pure Runner        |
|Chainsaw Uptown    |
|Champion Flatliners|
|Spirit Flintstones |
|Beach Heartbreakers|
|Sugar Wonka        |
|Tarzan Videotape   |
|Blade Polish       |
|Storm Happiness    |
+-------------------+
</pre>
<p>Zu 2.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    title
FROM most_popular_film
JOIN film f ON most_popular_film.film_id = f.film_id
EXCEPT
SELECT
    title
FROM most_popular_film
JOIN film f ON most_popular_film.film_id = f.film_id
INTERSECT -- INTERSECT bindet stärker als EXCEPT
SELECT
    title
FROM inventory
JOIN film f ON f.film_id = inventory.film_id;</pre><p></p>
<pre class="crayon:false">
+-------------+
|title        |
+-------------+
|Psycho Shrunk|
+-------------+
</pre>
<p></p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-mengen-operationen/">Musterlösungen zu „Mengen-Operationen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Übungen zu „Mengen-Operationen“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-mengen-operationen/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 10:54:30 +0000</pubDate>
				<category><![CDATA[Übungsaufgaben]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=736</guid>

					<description><![CDATA[<p>2 Übungsaufgaben</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-mengen-operationen/">Übungen zu „Mengen-Operationen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Schauspieler und Filmgenres</h2>

<p>Welche Schauspieler haben nicht in Action-Filmen mitgewirkt?</p>


<h2>2. Kundenbedarfsprüfung</h2>

<ol>
    <li>Welche Filme haben wir aus den populärsten Filmen im Bestand?</li>
    <li>Falls unser Bestand die Liste der populärsten Filme nicht abdeckt, welche sollten wir beschaffen?</li>
</ol>




<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-text-color has-background wp-element-button" href="/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-mengen-operationen/" style="background-color:#0b7cac" rel="nofollow">Musterlösungen</a></div>
</div>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-mengen-operationen/">Übungen zu „Mengen-Operationen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Musterlösungen zu „Daten gruppieren“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-gruppieren/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 09:59:09 +0000</pubDate>
				<category><![CDATA[Musterlösungen]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=723</guid>

					<description><![CDATA[<p>Musterlösungen zu „Daten gruppieren“</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-gruppieren/">Musterlösungen zu „Daten gruppieren“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Film-Ranking</h2>
<p>Erstellen Sie auf Basis der Ausleihzahlen ein Ranking der Filme. Geben Sie die Filme nach absteigenden Ausleihzahlen aus. Beschränken Sie die Ausgabe auf die ersten 10 Datensätze.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    count(f.film_id) AS count
  , title
FROM film      f
JOIN inventory i ON f.film_id = i.film_id
JOIN rental    r ON i.inventory_id = r.inventory_id
GROUP BY
    title
ORDER BY
    count DESC
LIMIT 10;</pre><p></p>
<pre class="crayon:false">
+-----+-------------------+
|count|title              |
+-----+-------------------+
|34   |Bucket Brotherhood |
|33   |Rocketeer Mother   |
|32   |Juggler Hardly     |
|32   |Ridgemont Submarine|
|32   |Grit Clockwork     |
|32   |Forward Temple     |
|32   |Scalawag Duck      |
|31   |Apache Divine      |
|31   |Goodfellas Salute  |
|31   |Rush Goodfellas    |
+-----+-------------------+
</pre>
<h2>2. Wiederbeschaffungskosten</h2>
<p>Es steht ein Gespräch mit Ihrer Versicherung an. Sie wollen die Deckungssumme für Ihr Filminventar anpassen. Wie hoch sind die aktuellen Wiederbeschaffungskosten Ihres Filminventars?</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    sum(replacement_cost)
FROM inventory i
JOIN film      f ON f.film_id = i.film_id;</pre><p></p>
<pre class="crayon:false">
+--------+
|sum     |
+--------+
|92621.19|
+--------+
</pre>
<h2>3. Kunden-Ausleihstatistik</h2>
<p>Erstellen Sie eine einfache Statistik über die Anzahl der Ausleihvorgänge Ihrer Kunden. Gegen Sie die 10 Kunden mit den höchsten Ausleihanzahlen aus.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    c.customer_id
  , c.first_name
  , c.last_name
  , count(rental_id) AS count
FROM customer c
JOIN rental   r ON c.customer_id = r.customer_id
GROUP BY
    c.customer_id
  , c.first_name
  , c.last_name
ORDER BY
    count DESC
LIMIT 10;</pre><p></p>
<pre class="crayon:false">
+-----------+----------+---------+-----+
|customer_id|first_name|last_name|count|
+-----------+----------+---------+-----+
|148        |Eleanor   |Hunt     |46   |
|526        |Karl      |Seal     |45   |
|144        |Clara     |Shaw     |42   |
|236        |Marcia    |Dean     |42   |
|75         |Tammy     |Sanders  |41   |
|469        |Wesley    |Bull     |40   |
|197        |Sue       |Peters   |40   |
|468        |Tim       |Cary     |39   |
|137        |Rhonda    |Kennedy  |39   |
|178        |Marion    |Snyder   |39   |
+-----------+----------+---------+-----+
</pre>
<h2>4. Zeichenkettenaggregation</h2>
<p>PostgreSQL hat eine Funktion namens <code>string_agg()</code>. Die Funktion liefert eine mit dem angegebenen Trennzeichen verkettete Liste der Werte (siehe <a href="https://www.postgresql.org/docs/17/functions-aggregate.html" target="_blank">PostgreSQL-Dokumentaion</a>).</p>
<p>Erstellen Sie eine Liste der Filmtitel mit den zugehörigen Schauspielern. Berücksichtigen Sie nur Filme, denen Schauspieler zugeordnet sind. Hier ein Muster dessen, was erwartet wird.</p>
<pre class="crayon:false">
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+
|title           |actors                                                                                                                                        |
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+
|Academy Dinosaur|Johnny Cage, Rock Dukakis, Christian Gable, Penelope Guiness, Mary Keitel, Oprah Kilmer, Warren Nolte, Sandra Peck, Mena Temple, Lucille Tracy|
|Ace Goldfinger  |Chris Depp, Bob Fawcett, Sean Guiness, Minnie Zellweger                                                                                       |
|Adaptation Holes|Julianne Dench, Bob Fawcett, Ray Johansson, Cameron Streep, Nick Wahlberg                                                                     |
|Affair Prejudice|Scarlett Damon, Jodie Degeneres, Oprah Kilmer, Kenneth Pesci, Fay Winslet                                                                     |
|African Egg     |Matthew Carrey, Matthew Leigh, Gary Phoenix, Dustin Tautou, Thora Temple                                                                      |
|Agent Truman    |Kenneth Hoffman, Sandra Kilmer, Jayne Neeson, Warren Nolte, Kirsten Paltrow, Reese West, Morgan Williams                                      |
|Airplane Sierra |Michael Bolger, Mena Hopper, Oprah Kilmer, Jim Mostel, Richard Penn                                                                           |
|Airport Pollock |Susan Davis, Lucille Dee, Fay Kilmer, Gene Willis                                                                                             |
...
(997 Datensätze insgesamt)
</pre>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    fi.title
  , string_agg(ac.first_name || ' ' || ac.last_name, ', ' ORDER BY ac.last_name, ac.first_name) AS actors_list
FROM film       fi
JOIN film_actor fa ON fi.film_id = fa.film_id
JOIN actor      ac ON ac.actor_id = fa.actor_id
GROUP BY
    fi.title;</pre><p></p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-gruppieren/">Musterlösungen zu „Daten gruppieren“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Übungen zu „Daten gruppieren“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-daten-gruppieren/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 08:49:09 +0000</pubDate>
				<category><![CDATA[Übungsaufgaben]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=720</guid>

					<description><![CDATA[<p>4 Übungsaufgaben</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-daten-gruppieren/">Übungen zu „Daten gruppieren“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Film-Ranking</h2>

<p>Erstellen Sie auf Basis der Ausleihzahlen ein Ranking der Filme. Geben Sie die Filme nach absteigenden Ausleihzahlen aus. Beschränken Sie die Ausgabe auf die ersten 10 Datensätze.</p>



<h2>2. Wiederbeschaffungskosten</h2>

<p>Es steht ein Gespräch mit Ihrer Versicherung an. Sie wollen die Deckungssumme für Ihr Filminventar anpassen. Wie hoch sind die aktuellen Wiederbeschaffungskosten Ihres Filminventars?</p>


<h2>3. Kunden-Ausleihstatistik</h2>

<p>Erstellen Sie eine einfache Statistik über die Anzahl der Ausleihvorgänge Ihrer Kunden. Gegen Sie die 10 Kunden mit den höchsten Ausleihanzahlen aus.</p>


<h2>4. Zeichenkettenaggregation</h2>

<p>PostgreSQL hat eine Funktion namens <code>string_agg()</code>. Die Funktion liefert eine mit dem angegebenen Trennzeichen verkettete Liste der Werte (siehe <a href="https://www.postgresql.org/docs/17/functions-aggregate.html" target="_blank">PostgreSQL-Dokumentaion</a>).</p>

<p>Erstellen Sie eine Liste der Filmtitel mit den zugehörigen Schauspielern. Berücksichtigen Sie nur Filme, denen Schauspieler zugeordnet sind. Hier ein Muster dessen, was erwartet wird.</p>

<pre class="crayon:false">
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+
|title           |actors                                                                                                                                        |
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------+
|Academy Dinosaur|Johnny Cage, Rock Dukakis, Christian Gable, Penelope Guiness, Mary Keitel, Oprah Kilmer, Warren Nolte, Sandra Peck, Mena Temple, Lucille Tracy|
|Ace Goldfinger  |Chris Depp, Bob Fawcett, Sean Guiness, Minnie Zellweger                                                                                       |
|Adaptation Holes|Julianne Dench, Bob Fawcett, Ray Johansson, Cameron Streep, Nick Wahlberg                                                                     |
|Affair Prejudice|Scarlett Damon, Jodie Degeneres, Oprah Kilmer, Kenneth Pesci, Fay Winslet                                                                     |
|African Egg     |Matthew Carrey, Matthew Leigh, Gary Phoenix, Dustin Tautou, Thora Temple                                                                      |
|Agent Truman    |Kenneth Hoffman, Sandra Kilmer, Jayne Neeson, Warren Nolte, Kirsten Paltrow, Reese West, Morgan Williams                                      |
|Airplane Sierra |Michael Bolger, Mena Hopper, Oprah Kilmer, Jim Mostel, Richard Penn                                                                           |
|Airport Pollock |Susan Davis, Lucille Dee, Fay Kilmer, Gene Willis                                                                                             |
...
(997 Datensätze insgesamt)
</pre>


<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-text-color has-background wp-element-button" href="/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-gruppieren/" style="background-color:#0b7cac" rel="nofollow">Musterlösungen</a></div>
</div>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-daten-gruppieren/">Übungen zu „Daten gruppieren“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Musterlösungen zu „Tabellen verknüpfen“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-tabellen-verknuepfen/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Tue, 31 Dec 2024 12:22:51 +0000</pubDate>
				<category><![CDATA[Musterlösungen]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=657</guid>

					<description><![CDATA[<p>Musterlösungen zu „Tabellen verknüpfen“</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-tabellen-verknuepfen/">Musterlösungen zu „Tabellen verknüpfen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Klassische Postwurfsendung</h2>
<p>Sie wollen alle Ihre Kunden mit einer gedruckten Werbebroschüre beglücken. Entwerfen Sie eine Abfrage, die folgende Felder ausgibt, die Sie für einen wohl adressierten Serienbrief benötigen:</p>
<ul>
<li> Vor- und Nachname</li>
<li>Straßenanschrift</li>
<li>Land</li>
<li>Postleitzahl</li>
<li>Wohnort</li>
</ul>
<p>Adressen ohne Postleitzahl, sollen nicht ausgegeben werden. Das Porto können wir uns sparen, wenn die Post nicht weiß, wo der Ort liegt.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    first_name
  , last_name
  , address
  , country
  , postal_code
  , city
FROM customer c1
JOIN address  a  ON a.address_id = c1.address_id
JOIN city     c2 ON c2.city_id = a.city_id
JOIN country  c3 ON c3.country_id = c2.country_id
WHERE postal_code IS NOT NULL;</pre><p></p>
<pre class="crayon:false">
+----------+---------+-----------------------+-------------+-----------+--------------+
|first_name|last_name|address                |country      |postal_code|city          |
+----------+---------+-----------------------+-------------+-----------+--------------+
|Jared     |Ely      |1003 Qinhuangdao Street|Indonesia    |25972      |Purwakarta    |
|Mary      |Smith    |1913 Hanoi Way         |Japan        |35200      |Sasebo        |
|Patricia  |Johnson  |1121 Loja Avenue       |United States|17886      |San Bernardino|
|Linda     |Williams |692 Joliet Street      |Greece       |83579      |Athenai       |
|Barbara   |Jones    |1566 Inegl Manor       |Myanmar      |53561      |Myingyan      |
...
(599 Datensätze insgesamt)
</pre>
<h2>2. Filme und Schauspieler</h2>
<p>Erstellen Sie eine nach Filmtiteln sortierte Liste. Welche Schauspieler wirken jeweils mit. Geben Sie diese nach Nachnamen, Vornamen sortiert aus.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    title
  , first_name
  , last_name
FROM film       fi
JOIN film_actor fa ON fi.film_id = fa.film_id
JOIN actor      ac ON fa.actor_id = ac.actor_id
ORDER BY
    title
  , last_name
  , first_name;</pre><p></p>
<pre class="crayon:false">
+----------------+----------+---------+
|title           |first_name|last_name|
+----------------+----------+---------+
|Academy Dinosaur|Johnny    |Cage     |
|Academy Dinosaur|Rock      |Dukakis  |
|Academy Dinosaur|Christian |Gable    |
|Academy Dinosaur|Penelope  |Guiness  |
|Academy Dinosaur|Mary      |Keitel   |
|Academy Dinosaur|Oprah     |Kilmer   |
|Academy Dinosaur|Warren    |Nolte    |
|Academy Dinosaur|Sandra    |Peck     |
|Academy Dinosaur|Mena      |Temple   |
|Academy Dinosaur|Lucille   |Tracy    |
|Ace Goldfinger  |Chris     |Depp     |
...
(5462 Datensätze insgesamt)
</pre>
<h2>3. Fehlende Zuordnungen</h2>
<p>Auf den ersten Blick werden Sie es nicht erkannt haben. In der Liste von Aufgabe 2 fehlen Filme. Ihnen ist kein Schauspieler zugeordnet. Welche Filme sind das?</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    title
FROM film            fi
LEFT JOIN film_actor fa ON fi.film_id = fa.film_id
WHERE fa.film_id IS NULL;</pre><p></p>
<pre class="crayon:false">
+----------------+
|title           |
+----------------+
|Drumline Cyclone|
|Flight Lies     |
|Slacker Liaisons|
+----------------+
</pre>
<p></p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-tabellen-verknuepfen/">Musterlösungen zu „Tabellen verknüpfen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Übungen zu „Tabellen verknüpfen“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-tabellen-verknuepfen/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Tue, 31 Dec 2024 12:19:24 +0000</pubDate>
				<category><![CDATA[Übungsaufgaben]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=654</guid>

					<description><![CDATA[<p>3 Übungsaufgaben</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-tabellen-verknuepfen/">Übungen zu „Tabellen verknüpfen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Klassische Postwurfsendung</h2>

<p>Sie wollen alle Ihre Kunden mit einer gedruckten Werbebroschüre beglücken. Entwerfen Sie eine Abfrage, die folgende Felder ausgibt, die Sie für einen wohl adressierten Serienbrief benötigen:</p>
<ul>
<li> Vor- und Nachname</li>
<li>Straßenanschrift</li>
<li>Land</li>
<li>Postleitzahl</li>
<li>Wohnort</li>
</ul>

<p>Adressen ohne Postleitzahl, sollen nicht ausgegeben werden. Das Porto können wir uns sparen, wenn die Post nicht weiß, wo der Ort liegt.</p>



<h2>2. Filme und Schauspieler</h2>

<p>Erstellen Sie eine nach Filmtiteln sortierte Liste. Welche Schauspieler wirken jeweils mit. Geben Sie diese nach Nachnamen, Vornamen sortiert aus.</p>


<h2>3. Fehlende Zuordnungen</h2>

<p>Auf den ersten Blick werden Sie es nicht erkannt haben. In der Liste von Aufgabe 2 fehlen Filme. Ihnen ist kein Schauspieler zugeordnet. Welche Filme sind das?</p>




<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-text-color has-background wp-element-button" href="/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-tabellen-verknuepfen/" style="background-color:#0b7cac" rel="nofollow">Musterlösungen</a></div>
</div>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/uebungsaufgaben/uebungen-zu-tabellen-verknuepfen/">Übungen zu „Tabellen verknüpfen“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Musterlösungen zu „Daten filtern“</title>
		<link>https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-filtern/</link>
		
		<dc:creator><![CDATA[karsten]]></dc:creator>
		<pubDate>Tue, 31 Dec 2024 11:05:47 +0000</pubDate>
				<category><![CDATA[Musterlösungen]]></category>
		<guid isPermaLink="false">https://sql-lernen.online/?p=627</guid>

					<description><![CDATA[<p>Musterlösungen zu „Daten filtern“</p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-filtern/">Musterlösungen zu „Daten filtern“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>1. Welche Kunden werden von Filiale Nr. 2 betreut?</h2>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    first_name
  , last_name
FROM customer
WHERE store_id = 2
ORDER BY
    last_name
  , first_name;</pre><p></p>
<pre class="crayon:false">
+----------+---------+
|first_name|last_name|
+----------+---------+
|Kathleen  |Adams    |
|Shirley   |Allen    |
|Charlene  |Alvarez  |
|Lisa      |Anderson |
|Ida       |Andrews  |
|Oscar     |Aquino   |
...
(273 Datensätze insgesamt)
</pre>
<h2>2. Welche Filme haben eine Spieldauer zwischen 45 und 60 Minuten?</h2>
<p>Lösen Sie die Aufgabe mit zwei alternativen Abfragen:</p>
<ul>
<li>Verwenden Sie <code>BETWEEN</code>.</li>
<li>Nutzen Sie zwei logisch verknüpfte Teilbedingungen als Filter.</li>
</ul>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">-- Lösung mit BETWEEN
SELECT
    title
  , length
FROM film
WHERE length BETWEEN 45 AND 60
ORDER BY
    length DESC
  , title;
-- Lösung mit zwei logisch verknüpften Teilbedingungen
SELECT
    title
  , length
FROM film
WHERE length &gt;= 45
  AND length &lt;= 60
ORDER BY
    length DESC
  , title;</pre><p></p>
<pre class="crayon:false">
+---------------------+------+
|title                |length|
+---------------------+------+
|Bubble Grosse        |60    |
|Jersey Sassy         |60    |
|Mockingbird Hollywood|60    |
|Phantom Glory        |60    |
|Pity Bound           |60    |
|Room Roman           |60    |
...
(104 Datens#tze insgesamt)
</pre>
<h2>3. Welche Filme handeln laut Titel von Dinosauriern?</h2>
<p>Hinweis: Nutzen Sie die Kurzform &#8218;Dino&#8216;.</p>
<p>Anscheinend sollen wir prüfen, ob die Zeichenkette &#8218;Dino&#8216; im Filmtitel vorkommt.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT title
FROM film
WHERE title LIKE &#039;%Dino%&#039;;</pre><p></p>
<pre class="crayon:false">
+------------------+
|title             |
+------------------+
|Academy Dinosaur  |
|Center Dinosaur   |
|Dinosaur Secretary|
+------------------+
</pre>
<p>Wir könnten uns auch überlegen, dass die gesuchte Zeichenkette vielleicht, wenn wir die Groß-/Kleinschreibung ignorieren, anderweitig vorkommt.</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT title
FROM film
WHERE lower(title) LIKE &#039;%dino%&#039;;</pre><p></p>
<p>Es bleibt bei drei Filmen.</p>
<h2>4. XOR &#8211; exklusives ODER</h2>
<p>Das logische ODER (<code>OR</code>) ist in SQL, wie auch in anderen Programmiersprachen, ein inklusives ODER. Wenn Sie ein exklusives ODER benötigen, also ein „entweder oder“, wie würden Sie es in SQL formulieren?</p>
<ul>
<li>Erstellen Sie eine Wahrheitstafel.</li>
<li>Prüfen Sie Ihre Formulierung. Suchen Sie nach Filmen, die entweder &#8218;Dino&#8216; im Titel haben oder &#8218;Academy&#8216;, jedoch nicht beides. Groß-/Kleinschreibung soll ignoriert werden.</li>
</ul>
<p>Ein „entweder oder“ (<code>A XOR B</code>) bedeutet: <code>(A AND NOT B) OR (NOT A AND B)</code></p>
<table>
<thead>
<tr>
<th style="text-align: center;" ><strong>A</strong></th>
<th style="text-align: center;" colspan="3"; ><strong>B</strong></th>
</tr>
<tr>
<th style="text-align: center;" ><strong><code>XOR</code></strong></th>
<th style="text-align: center;" ><code>FALSE</code></th>
<th style="text-align: center;" ><code>TRUE<code></th>
<th style="text-align: center;" ><code>NULL<code></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;" ><code>FALSE</code></td>
<td style="text-align: center;" >FALSE</td>
<td style="text-align: center;" >TRUE</td>
<td style="text-align: center;" >NULL</td>
</tr>
<tr>
<td style="text-align: center;" ><code>TRUE</code></td>
<td style="text-align: center;" >TRUE</td>
<td style="text-align: center;" >FALSE</td>
<td style="text-align: center;" >NULL</td>
</tr>
<tr>
<td style="text-align: center;" ><code>NULL</code></td>
<td style="text-align: center;" >NULL</td>
<td style="text-align: center;" >NULL</td>
<td style="text-align: center;" >NULL</td>
</tr>
</tbody>
</table>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">SELECT
    title
FROM film
WHERE (lower(title) LIKE &#039;%dino%&#039; AND lower(title) NOT LIKE &#039;%academy%&#039;)
   OR (lower(title) NOT LIKE &#039;%dino%&#039; AND lower(title) LIKE &#039;%academy%&#039;);</pre><p></p>
<pre class="crayon:false">
+------------------+
|title             |
+------------------+
|Center Dinosaur   |
|Dinosaur Secretary|
|Victory Academy   |
+------------------+
</pre>
<p></p>
<p>Der Beitrag <a href="https://sql-lernen.online/uebungen-und-musterloesungen/musterloesungen/musterloesungen-zu-daten-filtern/">Musterlösungen zu „Daten filtern“</a> erschien zuerst auf <a href="https://sql-lernen.online">SQL lernen</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
