Можете да решите това с известна денормализация:
- Създайте вторична таблица, която съдържа същите pkeys и състояния като вашата таблица с данни
- Добавете и попълнете колона за група състояния, която ще бъде вид под-ключ, който автоматично номерирате сами (базирано от 1 автоматично увеличение спрямо едно състояние)
Когато не е необходимо да филтрирате, можете да генерирате рандове #s на pkey, както споменахте по-горе. Когато имате нужда от филтриране, генерирайте рандове спрямо StatusPkeys на конкретния статус, който ви интересува.
Има няколко начина за изграждане на тази таблица. Можете да имате процедура, която изпълнявате на интервал, или можете да я направите на живо. Последното обаче би било хит на производителността, тъй като изчисляването на StatusPkey може да стане скъпо.