Verschachteln und Berechnungen direkt in SQL

  • Ich versuche seit einiger Zeit alles das, was ich bisher in PHP berechnen lassen habe, in SQL eredigen zu lassen.
    Erscheint mir sinnvoll, da ich nicht alle Werte in die Vars packen muss ect.


    Allerdings bekomme ich die Verschachtelungen nicht hin.
    Momentan versuche ich folgendes:


    SQL
    SELECT accspm AS results FROM players ORDER BY accspm DESC LIMIT 0,5 -- colum "accspm" absteigend sortiert und limit auf 5 Einträge


    Aus dieser Anweisung bekomme ich ja nun 5 Einträge.
    Von diesen 5 möchte ich nun den kleinsten Wert.
    Den kleinsten Wert bekomme ich aus dem gesammten Table per:

    SQL
    SELECT MIN(accspm) FROM players


    Ich versuche aber nun die beiden Querys in einer zu schreiben.
    Versucht hab ich:


    SQL
    SELECT MIN(accspm) AS result FROM (
    	(SELECT accspm AS array FROM players ORDER BY accspm DESC LIMIT 0,5)
    )


    und

    SQL
    SELECT MIN(
    (SELECT accspm AS array FROM players ORDER BY accspm DESC LIMIT 0,5)
    ) 
    AS result FROM players


    und einige Andere, die aber gar keinen Sinn ergaben.


    Ist es überhaupt möglich? Oder muss ich das doch über PHP machen?

  • stehe ich auf den Schlauch?


    absteigend heißt doch der kleinste kommt zuletzt oder?
    das heist der kleinste ist immer der 5te eintrag?



    ansonsten geht das so

    SQL
    SELECT MIN(accspm) AS minvalue,  accspm AS result FROM players ORDER BY accspm DESC LIMIT 0,5
  • "das heist der kleinste ist immer der 5te eintrag?"
    Ja.


    Deine Query funtioniert, allerdings nicht so wie ich es mir gedacht hab =/


    Ich möchte ja von den 5 Einträgen, die ich über LIMIT raus bekomme, den kleinsten auswählen.



    Es soll dann auch noch mehr passieren. Ich poste es mal, falls es eine komplett andere Möglichkeit gäbe:



    In Text: Berechne den Durchschnitt von Spalte "accspm", aber lasse die oberen und unteren 5% der Anzahl der Spieler weg.


    Hoffe es ist irgentwie verständlich ;D

Jetzt mitmachen!

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