No necesariamente necesitas usar subconsultas.
Lo que necesitas es implementar funciones de suma pero utilizando "funciones analiticas".
Código SQL:
Ver originalSELECT ACTIVIDAD,
VENTAS,
SUM (VENTAS) OVER() TOTAL_VENTAS
SUM (VENTAS) OVER(PARTITION BY ACTIVIDAD) TOTAL_POR_ACTIVIDAD
SUM (VENTAS) OVER(PARTITION BY TRUNC(FECHA, 'DAY'), ACTIVIDAD) TOTAL_POR_ACTIVIDAD_POR_SEMANA
FROM NOMBRE_TABLA
sin subconsultas, sin "group by" obtienes lo que necesitas.
TOTAL_VENTAS: es el total de ventas y no se particiona por actividad
TOTAL_POR_ACTIVIDAD: es el total de ventas y se particiona por actividad
TOTAL_POR_ACTIVIDAD_POR_SEMANA: es el total de ventas discriminada por actividad y por semana (si fuese necesario).
Estos son ejemplos de lo que puedes hacer jugando con el "PARTITION BY" que esta dentro del OVER.
Espero que haya sido de utilidad.
Exitos en tu resolucion.
Mario.