mysql: Analytische Funktion RANK

planb2000

Erfahrenes Mitglied
Hi,

da ichs jetzt schon zum 2mal brauchte hier das equivalent von der Oracle RANK Funktion. Die Fragestellung war hier: http://www.tutorials.de/forum/relat...-nur-jeweils-neusten-eintrag-selektieren.html
Ein Link zur sehr gut beschriebenen Möglichkeit Analytische Funktion RANK, LAG, LEAD nachzubauen findet man hier: http://www.oreillynet.com/pub/a/mys...nalytic-aka-ranking-functions-with-mysql.html
PHP:
SELECT *
    FROM (SELECT IF (@comid = command_id,
                       IF ( @created = created,
                            @rnk := @rnk + least(0,  @inc := @inc + 1),
                            @rnk := @rnk +  greatest(@inc, @inc := 1)
                                        + least(0,  @created := created)),
                       @rnk := 1 + least(0, @comid  := command_id)
                                + least(0, @created :=  created)
                                   + least(0, @inc :=  1)) rank,
                command_result_id,  command_id,     client_id , result_value,   created
         FROM command_result,
                (SELECT (@command_id := 0)) AS x
                            ORDER BY command_id, created DESC) AS y
     WHERE rank = 1;

Evtl. könnt Ihr das auch brauchen oder kennt sogar eine Übersicht in der man die DBMSe In einer übersichtlichen Ansicht hat?

Lieben Gruß
 
Zurück