Нужен запрос в Oracle SQL - PullRequest
       1

Нужен запрос в Oracle SQL

0 голосов
/ 21 марта 2019

У меня есть требование, подобное этому вопросу.

CREATE TABLE EMP(EmpId Int, EName varchar(10), Sal Int);

INSERT INTO EMP VALUES(1,'Tom',1000);
INSERT INTO EMP VALUES(2,'Lucy',1500);
INSERT INTO EMP VALUES(3,'Frank',2000);
INSERT INTO EMP VALUES(3,'Frank',3000);
INSERT INTO EMP VALUES(3,'Frank',4000);
INSERT INTO EMP VALUES(4,'Jenny',2000);
INSERT INTO EMP VALUES(5,'Will',1500);

Нет ограничений на таблицу.

Мне нужно удалить следующие две строки:

 3,Frank,2000
    3,Frank,3000

1 Ответ

2 голосов
/ 21 марта 2019

Полагаю, вы хотите удалить дубликаты на empid и ename и сохранить максимум с sal.Вы можете сделать это с помощью:

delete from emp e
where exists (
  select 1 from emp
  where empid = e.empid and ename = e.ename and sal > e.sal
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...