sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo usar distintos y sumar ambos juntos en Oracle?

Tendría mucho cuidado con una estructura de datos como esta. Primero, verifique que todos los id s tienen exactamente un precio:

select id
from table t
group by id
having count(distinct price) > 1;

Creo que el método más seguro es extraer un precio particular para cada id (diga el máximo) y luego haga la agregación:

select sum(price)
from (select id, max(price) as price
      from table t
      group by id
     ) t;

Luego, corrija sus datos para que no tenga una dimensión aditiva repetida. Debería haber una tabla con una fila por ID y precio (o quizás con duplicados pero controlados por fechas de vigencia y finalización).

Los datos están desordenados; no debe suponer que el precio es el mismo en todas las filas para una identificación determinada. Debe verificar eso cada vez que use los campos, hasta que corrija los datos.