kasjo: SQL - DB abfrage (DISTINCT problem)

hallo,

ich habe eine tabelle:

--------------------
| id | Gruppe | .. |
---------------
|  1 |    1   |
|  2 |    2   |
|  3 |    1   |
|  4 |    3   |
|  5 |    4   |
|  6 |    3   |
|  7 |    2   |
|  8 |    4   |
|  9 |    1   |
---------------

jetzt will ich pro GRUPPE, die letzte ID haben.
also:

  • Gruppe 1 -> id 9
  • Gruppe 2 -> id 7
  • Gruppe 3 -> id 6
  • Gruppe 4 -> id 8

wie erstelle ich am besten diese Abfrage - bei all meine versuchen kam nur unnützes zeugs raus!

danke für eine antwort
grüße kasjo

  1. Halihallo kasjo

    jetzt will ich pro GRUPPE, die letzte ID haben.

    Was meinst du mit "letzte"?
    Die grösste ID zu finden ist kein Problem, um die letzte (welche
    Sortierung veranschlagst du? - Datensätze sind in keiner Reihenfolge)
    zu finden, müsstest du zuerst definieren was du unter "letzte"
    verstehst.

    also:

    • Gruppe 1 -> id 9
    • Gruppe 2 -> id 7
    • Gruppe 3 -> id 6
    • Gruppe 4 -> id 8

    Falls du die grösste ID finden willst:

    SELECT
          Gruppe,
          MAX(id)
       FROM
          table
       GROUP BY Gruppe

    wie erstelle ich am besten diese Abfrage - bei all meine versuchen kam nur unnützes zeugs raus!

    Es hat zumindest nix mit DISTINCT zu tun.

    Viele Grüsse

    Philipp

    --
    if Murphy's laws are so true then why can I go to MSDN and learn someth...
    [img:http://www.emedias.ch/jserr.gif]
    1. So einfach kann die welt sein:

      SELECT Gruppe,MAX(id) as id
      FROM table
      GROUP BY tid
      ORDER BY id DESC

      danke vielmals!

      also, ich wollte die größte ID einer Gruppe absteigend sortiert nach den IDs ...

      ok, so geht :)

      1. So, hab ein wenig weiter probiert!

        folgender Fehler passiert:

        für jede Gruppe wird mir zwar die größte ID rausgesucht, wenn ich aber weitere spalten dieser ID auslesen, nimmt er nur die erste Reihe (die mit der kleinsten ID).
        also wenn ich noch eine Spalte Name habe, dann sucht er mir für die jeweilige Gruppe die 1 Zeile raus und nicht die letzte!
        Grund liegt ja in der MAX() funktion von der ID!

        lösst also mein problem nicht ganz...

        wie sehen alternativ dazu aus?

        bitte hilfe!
        danke kasjo

        1. Halihallo kasjo

          für jede Gruppe wird mir zwar die größte ID rausgesucht, wenn ich aber weitere spalten dieser ID auslesen, nimmt er nur die erste Reihe (die mit der kleinsten ID).
          also wenn ich noch eine Spalte Name habe, dann sucht er mir für die jeweilige Gruppe die 1 Zeile raus und nicht die letzte!
          Grund liegt ja in der MAX() funktion von der ID!

          http://forum.de.selfhtml.org/archiv/2004/5/81472/
          lies dich mal durch und beschäftige dich mit den Lösungen die darin
          zu finden sind.

          Viele Grüsse

          Philipp