1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

mehrere Maximalwerte

  • Ivy
  • 8. November 2007 um 20:15
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Ivy
    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?

  • a9bejo
    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.

  • ecr
    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
    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?

  • WolfB
    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.

  1. Datenschutzerklärung
  2. Impressum