Doppelte Einträge löschen

Hier kommen Posts zu anderen Datenbanken als PostgreSQL rein.

Doppelte Einträge löschen

Beitragvon ev-man » Mo 29. Mär 2010, 13:28

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.
ev-man
Neuer Benutzer
 
Beiträge: 15
Registriert: Di 13. Jan 2009, 12:37

Beitragvon akretschmer » Mo 29. Mär 2010, 13:34

ev-man hat geschrieben: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: Alles auswählen
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
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5937
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon ev-man » Mo 29. Mär 2010, 15:13

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.
ev-man
Neuer Benutzer
 
Beiträge: 15
Registriert: Di 13. Jan 2009, 12:37

Beitragvon akretschmer » Mo 29. Mär 2010, 15:19

ev-man hat geschrieben: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"&meta=&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
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5937
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon ev-man » Mo 29. Mär 2010, 15:50

Hier die genaue Fehlermeldung beim Kompilieren:


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

Also muss mein Cursor mit dem eigentlichen select beginnen. Kann man besagte Zeilen auch hinterher irgenwie loswerden?
ev-man
Neuer Benutzer
 
Beiträge: 15
Registriert: Di 13. Jan 2009, 12:37

Beitragvon akretschmer » Mo 29. Mär 2010, 15:58

ev-man hat geschrieben:Hier die genaue Fehlermeldung beim Kompilieren:


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

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
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5937
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon ev-man » Mo 29. Mär 2010, 16:31

Nein, es ist oracle. Dachte, die Befehle wären gleich.
ev-man
Neuer Benutzer
 
Beiträge: 15
Registriert: Di 13. Jan 2009, 12:37

Beitragvon akretschmer » Mo 29. Mär 2010, 16:42

ev-man hat geschrieben: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
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5937
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon ads » Mo 29. Mär 2010, 17:33

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 Bild

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

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD


Zurück zu Andere Datenbanken

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron