SQL aufgabe?

Hallo zusammen,

ich lerne gerade für eine SQL-Klausur und beiße mir an einer Aufgabe die Zähne aus. Ich habe eine Lösung, die mir logisch erscheint, aber eine andere, kompliziertere Lösung wurde mir als korrekt genannt. Ich würde gerne verstehen, wo der Denkfehler liegt.

Das Datenbankschema:

  • Person (person_id, name, alter)
  • Gegenstand (gegenstand_id, name)
  • Ausleihe (person_id, gegenstand_id, datum)

Die Aufgabenstellung:

"Finde die ID jedes Gegenstands (
gegenstand_id
) und das Durchschnittsalter der Personen, die älter als 40 sind und diesen Gegenstand mindestens 3 Mal ausgeliehen haben

Meine Lösung, die mir logisch erscheint:

SQL

SELECT
    A.gegenstand_id,
    AVG(P.alter) AS Durchschnittsalter
FROM
    Ausleihe A
JOIN
    Person P ON A.person_id = P.person_id
WHERE
    P.alter > 40
GROUP BY
    A.gegenstand_id
HAVING
    COUNT(*) >= 3;

Eine andere, vorgeschlagene Lösung:

SQL

SELECT
    A.gegenstand_id,
    AVG(P.alter) AS Durchschnittsalter
FROM
    Ausleihe A
JOIN
    Person P ON A.person_id = P.person_id
WHERE
    P.alter > 40
    AND A.gegenstand_id IN (
        SELECT gegenstand_id
        FROM Ausleihe
        GROUP BY gegenstand_id
        HAVING COUNT(*) >= 3
    )
GROUP BY
    A.gegenstand_id;

Meine Frage an euch: Welche der beiden Lösungen ist korrekt und warum genau ist die andere falsch? Ich habe das Gefühl, es hat mit der Reihenfolge von

WHERE
und
HAVING
zu tun, aber ich kann den Fehler in meiner Logik nicht genau finden.

Vielen Dank für eure Hilfe!

Gemini 2.5 pro sagt letzteres , GPT ,QWEN sagen meine lösung geht auch

SQL, Datenbank, Informatik, Informatiker, MySQL, Programmiersprache, Datenbankabfrage

Gym Fortschritt?

Hallo zusammen,

ich hoffe, ihr könnt mir mit meinem aktuellen Problem helfen. Ich habe ein Plateau bei meiner Brust- und Rückenentwicklung erreicht und bin mir nicht sicher, wie ich es überwinden kann.

Meine aktuelle Situation
  • Trainingsplan: Ich trainiere nach einem Push/Pull/Legs-Split und trainiere jede Muskelgruppe zweimal pro Woche (Beine Nur einmal).
  • Ernährung: Meine Ernährung ist bereits angepasst und auf mein Trainingsziel ausgelegt.
  • Vorerfahrung: Ich habe bereits versucht, das Trainingsvolumen zu erhöhen (z.B. 7 Sätze für die Brust), was jedoch nicht den gewünschten Erfolg gebracht hat.
Brusttraining (Push-Tag)

Mein Brusttraining besteht aus insgesamt 5 Sätzen:

  • Schrägbankdrücken (Maschine): 2 Sätze
  • Bankdrücken (Langhantel): 2 Sätze
  • Butterfly: 1 Satz

Ich bin beim Bankdrücken auf einem Plateau und schaffe bei 90 kg maximal 8 Wiederholungen, komme aber nicht weiter. Das gilt sowohl für das Schräg- als auch für das Flachbankdrücken.

Rückentraining (Pull-Tag)

Mein Rückentraining sieht wie folgt aus:

  • Klimmzüge: 2 Sätze bis zum Muskelversagen
  • Latziehen: 3 Sätze mit 85 kg (7-10 Wiederholungen)
  • T-Bar Rudern: 2 Sätze mit 70 kg (ca. 7 Wiederholungen)
  • Lat-Pulldowns: 2 Sätze

Auch hier stagniere ich bei den Gewichten und schaffe keine Steigerung mehr.

Meine Frage an euch:

Wie kann ich dieses Plateau überwinden? Ich habe bereits überlegt, den Wiederholungsbereich auf 6-8 Wiederholungen mit mehr Gewicht umzustellen, um den Fokus auf Kraft zu legen. Habt ihr noch weitere Tipps oder Strategien, die ich ausprobieren könnte? Ich bin für jeden Vorschlag dankbar!

Fitness, Muskelaufbau, Muskeln, Training, Fitnessstudio, Gym, Muskeltraining, Markus Rühl

SQL abfragen herangehensweise?

Hallo

Ich übe gerade SQL ich komme mit einfachen abfragen eigentlich gut zurecht , SELECT FROM JOIN sind kein ding. Aber bei komplexeren Abfragen kriege ich schwierigkeiten in Where oder in bzw Kombi mit Group By

oder vorallem bei verschachtlungen

Habt ihr tipps für die passende Herangehensweise?

Hier so Bsp schwiergigkeitsgrad was ich draufhaben muss:

Gegeben ist folgendes Datenbankschema für ein Buchungssystem:

1. Tabelle: Kunden

Diese Tabelle speichert die Kundendaten.

  • KundenID
    (Primärschlüssel)
  • Name
  • Kategorie
    (ein numerischer Wert, z.B. für die Priorität)
  • Alter

2. Tabelle: Standorte

Diese Tabelle enthält die verschiedenen Standorte.

  • StandortID
    (Primärschlüssel)
  • StandortName
  • Kapazitaet

3. Tabelle: Buchungen

Diese Tabelle verbindet Kunden mit Standorten zu einem bestimmten Datum.

  • KundenID
    (Fremdschlüssel, verweist auf Kunden)
  • StandortID
    (Fremdschlüssel, verweist auf Standorte)
  • Datum
Hinweis: Die Kombination aus
KundenID und StandortID
ist der zusammengesetzte Primärschlüssel dieser Tabelle.
b) Standorte, die Kunden mit hoher Priorität betreuen:
Ich muss die Namen aller Standorte finden, die Buchungen für Kunden haben, deren
Kategorie
-Wert höher ist als der Durchschnitt aller Kunden.

c) Doppelte Buchungen am selben Ort und Tag finden:

Wie finde ich heraus, welche Kunden am selben Datum am selben Standort einen Termin gebucht haben?

d) Kunden mit überdurchschnittlich vielen Buchungen:

Wie kann ich die Namen aller Kunden auflisten, deren Anzahl an Buchungen höher ist als die durchschnittliche Anzahl von Buchungen pro Kunde?
Programm, SQL, Webseite, programmieren, Datenbank, Informatik, Informatiker, MySQL, Datenbankabfrage, Datenbanksystem