1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

mehrere Maximalwerte

  • Ivy
  • 8. November 2007 um 20:15
  • Unerledigt
  • Ivy
    22
    Ivy
    Mitglied
    Reaktionen
    35
    Punkte
    4.920
    Beiträge
    889
    • 8. November 2007 um 20:15
    • #1

    Hi. Also ich habe die Aufgabe aus der Relation Buch (ISBN, Titel, Seiten, Jahr) die drei dicksten Bücher (die mit der größten seitenanzahl) herauszufinden. dabei können es aber mehr sein (es kann ja sein, dass zwei bücher die gleiche seitenanzahl haben). wenn ich zb. habe 200, 200, 100, 50, 40, 10, 20 soll rauskommen: 200, 200, 100, 50

    allerdings hab ich keine ahnung, wie ich das in SQL realisieren soll

    ich meine

    SELECT Titel
    FROM Buch
    HAVING MAX seiten

    geht ja nicht, weil da kommt nur ein wert raus. hat jemand eine idee für mein problem?

    Wer FU sagt, muss auch T sagen

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 8. November 2007 um 22:44
    • #2

    Absteigend sortieren und dann die ersten 3 ergebnisse nehmen.

    SELECT Titel FROM Buch ORDER BY seiten DESC LIMIT 3

    limit ist datenbankspezifisch. Die meisten Datenbanken haben aber dieses feature, schaut nur immer ein wenig anders aus.

    lg, Benjamin Ferrari, bookworm.at

  • ecr
    3
    ecr
    Mitglied
    Reaktionen
    1
    Punkte
    51
    Beiträge
    10
    • 8. November 2007 um 22:55
    • #3

    im mysql 5.0 funktionierts zumindest so:

    SQL
    SELECT b1.titel FROM buch AS b1 JOIN (SELECT b2.seiten FROM buch AS b2 GROUP BY b2.seiten ORDER BY b2.seiten DESC LIMIT 3) AS b3 ON b1.seiten = b3.seiten;

    aber es gibt sicher auch noch andere/mehrere verschiedene varianten je nach dbms

  • Ivy
    22
    Ivy
    Mitglied
    Reaktionen
    35
    Punkte
    4.920
    Beiträge
    889
    • 9. November 2007 um 07:47
    • #4
    Zitat von a9bejo

    Absteigend sortieren und dann die ersten 3 ergebnisse nehmen.

    SELECT Titel FROM Buch ORDER BY seiten DESC LIMIT 3

    limit ist datenbankspezifisch. Die meisten Datenbanken haben aber dieses feature, schaut nur immer ein wenig anders aus.

    Werden hier nicht dann am Schluss "nur" 3 Werte ausgegeben? Das heißt, auch, wenn ich zwei Bücher mit der gleichen Seitenanzahl habe, wo ja dann 4 werte rauskommen müssten, gibt er 3 aus?

    Wer FU sagt, muss auch T sagen

  • WolfB
    7
    WolfB
    Mitglied
    Reaktionen
    2
    Punkte
    467
    Beiträge
    93
    • 9. November 2007 um 08:56
    • #5

    Probier mal:

    SELECT titel FROM buch WHERE seiten >= (SELECT distinct seiten FROM Buch ORDER BY seiten DESC LIMIT 2,1);

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung