Ergebnis 1 bis 9 von 9

Thema: Doppelte Einträge löschen

  1. #1
    ev-man ist offline Neuer Benutzer
    Registriert seit
    13.01.2009
    Beiträge
    15

    Standard Doppelte Einträge löschen

    Ich habe ein select, dass mir Zeilen zurück gibt, die in genau einer Spalte übereinstimmen. Sollte es solche Zeilen geben, möchte ich, dass beide gelöscht werden. Wir kann ich das machen? Mit distinct on bleibt ja eine von beiden erhalten.

    Danke.

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ev-man Beitrag anzeigen
    Ich habe ein select, dass mir Zeilen zurück gibt, die in genau einer Spalte übereinstimmen. Sollte es solche Zeilen geben, möchte ich, dass beide gelöscht werden. Wir kann ich das machen? Mit distinct on bleibt ja eine von beiden erhalten.

    Danke.

    Code:
    test=# select * from doppelt;
     id | value
    ----+-------
      1 |     1
      2 |     1
      3 |     2
      4 |     3
      5 |     4
      6 |     5
      7 |     5
      8 |     6
      9 |     7
     10 |     8
    (10 rows)
    
    test=*# select value, count(1) from doppelt group by 1 having count(1) = 2 ;
     value | count
    -------+-------
         1 |     2
         5 |     2
    (2 rows)
    
    test=*# select value from doppelt group by 1 having count(1) = 2 ;
     value
    -------
         1
         5
    (2 rows)
    
    test=*# delete from doppelt where value in (select value from doppelt group by 1 having count(1) = 2);
    DELETE 4
    test=*# select * from doppelt;
     id | value
    ----+-------
      3 |     2
      4 |     3
      5 |     4
      8 |     6
      9 |     7
     10 |     8
    (6 rows)
    
    test=*#
    Du siehst den Weg?

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    ev-man ist offline Neuer Benutzer
    Registriert seit
    13.01.2009
    Beiträge
    15

    Standard

    Soweit klar. Ich hab nur noch 2 Probleme dabei. Ich selektiere aus 2 Tabellen und das select soll in einen Cursor geschrieben werden. Wenn ich das einfach so mache, kommt beim Kompilieren die Fehlermeldung fand delete als select erwartet.

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ev-man Beitrag anzeigen
    Soweit klar. Ich hab nur noch 2 Probleme dabei. Ich selektiere aus 2 Tabellen und das select soll in einen Cursor geschrieben werden. Wenn ich das einfach so mache, kommt beim Kompilieren die Fehlermeldung fand delete als select erwartet.
    http://www.google.de/search?hl=de&q="fand+delete+als+select+erwartet"&m eta=&cts=1269868661238&aq=f&aqi=&aql=&oq=&gs_rfai=
    Keine Ergebnisse für "fand delete als select erwartet" gefunden.

    Möglicherweise lautete die Fehlermeldung ja anders?


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    ev-man ist offline Neuer Benutzer
    Registriert seit
    13.01.2009
    Beiträge
    15

    Standard

    Hier die genaue Fehlermeldung beim Kompilieren:


    • Fehler(280,3): PLS-00103: Fand das Symbol "DELETE" als eines der folgenden erwartet wurde: ( select <a SQL statement> Das Symbol "DELETE" wurde ignoriert.


    Also muss mein Cursor mit dem eigentlichen select beginnen. Kann man besagte Zeilen auch hinterher irgenwie loswerden?

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ev-man Beitrag anzeigen
    Hier die genaue Fehlermeldung beim Kompilieren:


    • Fehler(280,3): PLS-00103: Fand das Symbol "DELETE" als eines der folgenden erwartet wurde: ( select <a SQL statement> Das Symbol "DELETE" wurde ignoriert.


    Also muss mein Cursor mit dem eigentlichen select beginnen. Kann man besagte Zeilen auch hinterher irgenwie loswerden?
    Verwendest Du PostgreSQL? Mich überkommen Zweifel ...


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    ev-man ist offline Neuer Benutzer
    Registriert seit
    13.01.2009
    Beiträge
    15

    Standard

    Nein, es ist oracle. Dachte, die Befehle wären gleich.

  8. #8
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ev-man Beitrag anzeigen
    Nein, es ist oracle. Dachte, die Befehle wären gleich.
    Nun, es ist, zumindest für mich, aus den spezifischen Fehlermeldungen eines mir unbekannten Systems revers rauszubekommen, wie Dein SQL-Befehl aussah und was daran (wieder aus Sicht eines mir nicht bekannten Systems) wohl falsch sei. Sorry, Glaskugel ist (mal wieder) defekt...


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  9. #9
    ads
    ads ist gerade online Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Nun, du bist hier in einem Forum für PostgreSQL. Wenn du Lizenzkosten sparen möchtest, können wir dir gern helfen ;-)

    Ich habe den Thread erst mal in das passende Forum verschoben, dem für andere Datenbanken.


    Ansonsten wäre es praktisch, wenn du langsam mal konkretes SQL und richtige Fehlermeldungen zeigen könntest. Mit herumraten ist weder dir noch uns geholfen.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Ähnliche Themen

  1. Problem Doppelte Einträge bei Rekursion
    Von kollegah1338 im Forum SQL
    Antworten: 8
    Letzter Beitrag: 09.12.2011, 21:14
  2. Antworten: 1
    Letzter Beitrag: 29.07.2011, 06:11
  3. Frage Einträge löschen
    Von nixdorf im Forum Allgemeines
    Antworten: 8
    Letzter Beitrag: 16.03.2009, 11:01
  4. Antworten: 2
    Letzter Beitrag: 24.10.2006, 11:18
  5. Doppelte Datensätze löschen
    Von RainerB im Forum SQL
    Antworten: 4
    Letzter Beitrag: 04.08.2006, 11:30

Berechtigungen

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

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum