![]() |
Datenbank: mysql • Version: 5.02 • Zugriff über: ODBC
zweite oder dritte Eintrag bei Group by
Hallo
Ich habe eine Tabelle wo die SchülterNote eingetragen sind. ICh möchte den Zweit oder den Dritte beste Note eines Schüler herausfiltern,wo für jeden Schülter bis 10 NOten gescpeichert werden kann Ich habe alles probiert aber bei Group by passt nur Min oder Max ich würde auf jeden Vorschlag freuen Select ....Note... From Schueltertbl Group by Name |
Re: zweite oder dritte Eintrag bei Group by
Tut mir leid, ich bin mir nicht sicher was du genau möchtest. :gruebel:
Wärst du bitte so nett und könntest du eine Beschreibung deiner Tabelle(n) und deines Anliegens posten? |
Re: zweite oder dritte Eintrag bei Group by
Ich denke mal, dass er ein Feld in die GroupBy Klausel aufnehmen möchte, welches nicht im Select steht => dann hakt's natürlich :stupid:
Edit: Oracle meint dazu übrigens folgendes: Zitat:
|
Re: zweite oder dritte Eintrag bei Group by
Eigentlich ist IMHO nur vorgeschrieben, das alle Felder die keine Aggregatsfunktion beinhalten und keine
Konstanten sind in der group by angegegen werden müssen. Es ist aber zulässig weitere Bedingungen im group by anzugeben, die unabhängig vom Select-Bereich sind. |
Re: zweite oder dritte Eintrag bei Group by
Hallo,
mir scheint es soll statt der besten Note eines jeden Schülers dessen zweitbeste (z.B.) Note ermittelt werden. Da es dafür keine vordefinierte Funktion gibt, muss man den Tabellenaufbau kennen und kann dann vielleicht mit geordneten (ORDER BY) und abgezählten (LIMIT) SubSelects zu einem Ergebnis kommen. Außerdem kommt es noch auf die Definition von "zweitbeste Note" an. Wenn man alle Noten (1 1 2) nach ihrem Wert aufsteigend ordnet, kann die zweitbeste Note als "1" oder als "2" ermittelt werden - je nach Definition. Grüße vom marabu |
Re: zweite oder dritte Eintrag bei Group by
Ich schließ mich Marabu an, je Schüler eine Query sortiert nach den Noten und dann mittels Limit eben eine rausgesucht.
|
Re: zweite oder dritte Eintrag bei Group by
In Firebird könnte man die zweit- und drittbeste Note z.B. über den Befehl
SQL-Code:
ermitteln. (Vorausgesetzt es gibt überhaupt mehr als 1 Note.) Gibt es etwas Vergleichbares in MySQL? Entspricht das von Euch erwähnte "Limit" diesem Konstrukt?
Select first 2 skip 1 Distinct(Note) from Schuelertbl order by Note
|
Re: zweite oder dritte Eintrag bei Group by
Zitat:
|
Re: zweite oder dritte Eintrag bei Group by
Die Frage ist immer, ob man das wirklich in ein SQL Statement werfen will (wobei es hier wahrscheinlich wirklich trivial ist).
Möglich wäre sowas:
SQL-Code:
SELECT t1.Schüler
,Min(t1.Note) FROM NotenBlabla t1 ,NotenBlabla t2 WHERE t1.Schüler = t2.Schüler and t1.Note > t2.Note GROUP BY t1.Schüler |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz