Re: Please advice on a query
"David G. Johnston" <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.novice |
|---|---|
| Message-ID | <CAKFQuwb=1r9DCzr-sPxG=JBtXRUnEFz-TLvK41KEej_9RK576g@mail.gmail.com> |
On Wed, Jul 11, 2018 at 9:05 AM, JORGE MALDONADO <[email protected]> wrote: > I have a table more or less like this: > > ----------------------------------------------------- > crs_id some data req > ----------------------------------------------------- > 25 aaaaaaaa 21 > 25 aaaaaaaa 19 > 17 ccccccccc null > 8 dddddddd null > 19 eeeeeeee 15 > 19 xxxxxxxxx 37 > 15 fffffffffffffffff 10 > 10 gggggggg null > > I need to delete rows according to the following criteria: > > * Row with "crs_id = 25" must be deleted (only the second row) because > "req = 19" and there is a row with "crs_id = 19" > > * Row with "crs_id = 19" must be deleted (only the first row) because "req > = 15" and there is a row with "crs_id = 15" > > * Row with "crs_id = 15" must be deleted because "req = 10" and there is a > row with "crs_id = 10" > > I have been struggling with this issue without a successful result. > > Maybe... DELETE FROM tbl WHERE EXISTS (SELECT 1 FROM tbl AS cmp WHERE tbl.req_id = cmp.crs_id) That probably can be written with USING though I find that syntax a bit hard to read personally. Might want to compare plans if performance matters. David J.