我有一个简单的结果集,它从包含其他列的表中为我提供了一个用户 ID 和一个运算符,其中一个列是基于该用户发生的活动的 GUID。我添加了一个行号并由 Operator 进行分区以获得类似的内容(但比这个示例更广泛);
UserId Operator RowNumber
513 J. Smith 12
513 J. Smith 56
513 J. Smith 25
513 J. Smith 45
513 J. Smith 11
513 J. Smith 58
513 J. Smith 22
513 J. Smith 17
513 J. Smith 29
501 S. Jones 33
501 S. Jones 21
501 S. Jones 09
501 S. Jones 15
501 S. Jones 39
501 S. Jones 26
501 S. Jones 31
501 S. Jones 28
501 S. Jones 37
想象一下,每个运算符的行数增加一倍,大约有 20 个不同的运算符名称。
我希望能够在同一结果集中为每个运算符返回 6 个随机行。我已经通过将我的原始查询包含在一个子查询中并从中选择前 6 个具有行号和分区并在另一端使用 ORDER BY newid() 来一次为一个运算符获取随机行. 我只是不知道如何一次为每个用户获取 6 个随机行(基于我给它的行号)。