Cómo obtener los registros distintos basados en la bandera o marca de tiempo más reciente actualización?

Nighthawk:

Estoy tratando de obtener los registros basados ​​en las siguientes condiciones.

Tabla: Tienda

Esquema:

create table store (product varchar(50),product_id number,product_type varchar(10),product_flag char(1),product_upd_dt Date);
insert into store(product,product_id,product_type,product_flag,product_upd_dt)values('Apple',123,'GALA','Y','16-MAR-20 06.49.05');
insert into store(product,product_id,product_type,product_flag,product_upd_dt)values('Apple',123,'GALA','N','16-MAR-20 06.49.05');
insert into store(product,product_id,product_type,product_flag,product_upd_dt)values('Apple',134,'JAZZ','N','16-MAR-20 06.49.05');
insert into store(product,product_id,product_type,product_flag,product_upd_dt)values('Apple',134,'JAZZ','N','14-MAR-20 06.49.05');
insert into store(product,product_id,product_type,product_flag,product_upd_dt)values('Apple',134,'JAZZ','N','15-MAR-20 06.49.05');
insert into store(product,product_id,product_type,product_flag,product_upd_dt)values('Apple',13,'ENVY','Y','15-MAR-20 06.49.05');
commit;

1) A partir de esta Quiero conseguir product_id basado en product_flag = 'Y'

2) Si el product_flag es 'N' a continuación, obtener la más reciente product_id actualizada.

3) Uno de los productos puede mapeado en el mismo product_id, pero diferentes product_types.

4) La misma fila se puede repetir, pero la diferencia en product_upd_dt

Aquí hay un ejemplo.

imagen de entrada

introducir descripción de la imagen aquí

Aquí está la esperada Salida-

salida de la imagen

introducir descripción de la imagen aquí

Gracias por adelantado.

Pequeño pie :

Ah, 1-4 representan direcciones, preguntas no separados ... lo siento, inicialmente mal entendido el problema.

¿Qué tal esto?

SQL> select product,
  2    product_id,
  3    product_type,
  4    max(product_flag) product_Flag,
  5    max(product_upd_dt) product_upd_dt
  6  from store
  7  where product_id in (select product_id
  8                       from store
  9                       where product_flag = 'Y'
 10                      )
 11  group by product, product_id, product_type;

PRODUCT    PRODUCT_ID PRODUCT_TY P PRODUCT_UPD_DT
---------- ---------- ---------- - ------------------
Apple             134 ENVY       Y 15-mar-20 06.49.05
Apple             123 GALA       Y 16-mar-20 06.49.05
Apple             134 JAZZ       N 16-mar-20 06.49.05

SQL>

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=415824&siteId=1
Recomendado
Clasificación