Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT id
- FROM analyzes
- WHERE code IN
- (SELECT code
- FROM analyzes
- WHERE deleted = 1
- GROUP BY code
- HAVING count(code)>1)
- SELECT code, deleted, MAX(deleted_date) FROM analyzes WHERE deleted = 1 GROUP BY code, deleted;
- SELECT id, code
- FROM analyzes t
- WHERE deleted = 1
- AND deleted_date =
- (select max(deleted_date)
- from analyzes a
- where t.code = a.code
- and a.deleted = 1)
- create table `analyzes`
- (
- `id` int,
- `code` varchar(10),
- `deleted` int,
- `deleted_date` int
- );
- insert into `analyzes` (`id`,`code`,`deleted`,`deleted_date`) values
- ( 1,'01.00.002',1,1),
- ( 2,'01.00.002',1,2),
- (15,'01.00.002',1,3),
- ( 3,'01.00.005',1,2),
- (17,'01.00.005',1,1),
- (16,'01.00.006',0,1),
- (18,'01.00.007',1,1),
- (19,'01.00.007',0,2);
- select * from `analyzes`;
- with `t1` as (
- with `t0` as (
- select
- `id`,
- `code`,
- `deleted_date` ,
- max(`deleted_date`) over(partition by `code` order by `code`) `deleted_date_max`
- from `analyzes`
- where
- `deleted` = 1
- )
- select
- `id`,
- `code`,
- `deleted_date`
- from `t0`
- where `deleted_date` = `deleted_date_max`
- ),
- `t2` as (
- select
- `code`
- from `analyzes`
- where `deleted` = 0
- )
- select
- `t1`.`id`
- from `t1`
- left join `t2` on `t1`.`code` = `t2`.`code`
- where
- `t2`. `code` is null
- with `t1` as (
- with `t0` as (
- select
- `id`,
- `code`,
- `deleted_date` ,
- max(`deleted_date`) over(partition by `code` order by `code`) `deleted_date_max`
- from `analyzes`
- where
- `deleted` = 1
- )
- select
- `id`,
- `code`,
- `deleted_date`
- from `t0`
- where `deleted_date` = `deleted_date_max`
- ),
- `t2` as (
- select
- `code`
- from `analyzes`
- where `deleted` = 0
- )
- select
- `t1`.`id`
- from `t1`
- left join `t2` on `t1`.`code` = `t2`.`code`
- where
- `t2`. `code` is null
Add Comment
Please, Sign In to add comment