realmente depende, pero seria de la siguiente forma
Código SQL:
Ver originalUPDATE acceso_sala_solicitud
SET id_estado_oym = 1
WHERE codigo IN
(
SELECT DISTINCT(t1.codigo) FROM ACCESO_SALA_FECHAS t1 GROUP BY t1.codigo HAVING
(
(SELECT COUNT(codigo) FROM ACCESO_SALA_FECHAS WHERE codigo = t1.codigo) -
(SELECT COUNT(codigo) FROM ACCESO_SALA_FECHAS WHERE codigo = t1.codigo AND id_estado_oym = 2)
) != 0
) AND STATUSGO = 'APR'
AND ROWNUM <= 100;
aqui lo que haces es traer todas las coincidencias (IN) y decirle despues que solo 10 tenga en cuenta.
pero si lo que quieres es optimizado y no haga un recorrido por toda la tabla y luego recien haga el rownum entonces seria en la siguiente parte
Código SQL:
Ver originalUPDATE acceso_sala_solicitud
SET id_estado_oym = 1
WHERE codigo IN
(
SELECT DISTINCT(t1.codigo) FROM ACCESO_SALA_FECHAS t1 WHERE ROWNUM <= 100 GROUP BY t1.codigo HAVING
(
(SELECT COUNT(codigo) FROM ACCESO_SALA_FECHAS WHERE codigo = t1.codigo) -
(SELECT COUNT(codigo) FROM ACCESO_SALA_FECHAS WHERE codigo = t1.codigo AND id_estado_oym = 2)
) != 0
) AND STATUSGO = 'APR';