Podrías resolver esto con algo de desnormalización:
- Cree una tabla secundaria que contenga las mismas claves p y estados que su tabla de datos
- Agregue y complete una columna de grupo de estado que será una especie de subclave que usted mismo numerará automáticamente (incremento automático basado en 1 relativo a un solo estado)
Cuando no necesite filtrar, puede generar rand #s en la pkey como mencionó anteriormente. Cuando necesite filtrar, genere rands contra las StatusPkeys del estado en particular que le interese.
Hay varias formas de construir esta tabla. Podría tener un procedimiento que ejecute en un intervalo o podría hacerlo en vivo. Sin embargo, esto último sería un golpe de rendimiento, ya que el cálculo de StatusPkey podría ser costoso.