Můžete to vyřešit nějakou denormalizací:
- Vytvořte sekundární tabulku, která obsahuje stejné pkeys a stavy jako vaše datová tabulka
- Přidejte a vyplňte sloupec skupiny stavů, což bude druh podklíče, který si sami automaticky očíslujete (automatický přírůstek založený na 1 vzhledem k jednomu stavu)
Když nepotřebujete filtrovat, můžete vygenerovat rand #s na pkey, jak jste zmínili výše. Když potřebujete filtrovat, vygenerujte randy podle StatusPkeys konkrétního stavu, který vás zajímá.
Existuje několik způsobů, jak tuto tabulku sestavit. Můžete mít proceduru, kterou spustíte v intervalu, nebo ji můžete provést naživo. To by však znamenalo výkonnostní hit, protože výpočet StatusPkey by mohl být drahý.