Anzeige:
Ergebnis 1 bis 5 von 5

Thema: DISTINCT ON simulieren?

  1. #1
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    26.04.2001
    Beiträge
    180

    DISTINCT ON simulieren?

    Hi,
    ich habe z.Z. folgendes Problem: ich möchte doppelte Datensätze in einem Query ignorieren, allerdings nur solche, wo ein bestimmtes Feld doppelt auftritt.

    Zur Verdeutlichung, die Tabelle sieht so aus:

    Code:
    Serial    Update    Foo
    ----------------------------
    ....
    100         0           Bar
    100         1           Baz
    ....
    Ich möchte, dass der Datensatz mit Serial 100 nur einmal aufgelistet wird.

    DISTINCT kann ich nicht nehmen, da sich die Werte im Feld "Foo" unterscheiden.

    Durch ein bisschen Googeln habe ich rausgefunden, dass PostgreSQL wohl sowas unterstützt, da kann man sagen "DISTINCT ON Serial" (=> nur die Daten im Feld Serial müssen sich unterscheiden).

    Wie kann ich dieses Verhalten mit Standard SQL erhalten?

    Ich benutze hier MS ADO 2.6; die Daten kommen aus Access.

    Danke schonmal
    Geändert von Trillian (13-10-2003 um 12:04 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    versuch doch mal mit group by?

    aber da musst du dann die andern 2 felder rauslassen... die bringen dir ja dann eh nichts mehr..


    also: select serial from tabelle group by serial

  3. #3
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    26.04.2001
    Beiträge
    180
    Original geschrieben von quinte17
    versuch doch mal mit group by?

    aber da musst du dann die andern 2 felder rauslassen... die bringen dir ja dann eh nichts mehr..
    Nein, die darf ich nicht weglassen, ich brauche die Infos.
    Ich möchte nur nicht, dass alle beide (Beispiel) Datensätzen angezeigt werden, wo Serial = 100 ist, sondern eben immer nur einer. Nichtsdestotrotz muss ich wissen, wie Foo und Update dabei aussehen.

    Mit Group By habe ich bisher noch nix gemacht, werd ich mir mal angucken.

  4. #4
    Registrierter Benutzer
    Registriert seit
    21.06.1999
    Beiträge
    677
    Müsste mit GROOUP BY, HAVING (count(...) > 2) und mehreren verschachtelten Subselects gehen. Bräuchte ich jetzt aber schätzungsweise mindestens eine halbe Stunde bis ich's
    hingefummelt habe, was die Schmerzgrenze des kostenlosen Supports überschreitet.

    Ist aber eine lehrreiche und empfehelenswerte Übung.

  5. #5
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    select serial, max(update),foo from table group by serial,foo

    falls fdas nicht reicht,sag doch einfach mal wie der output aussehen soll.
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •