选择没有重复的随机记录

0 sql t-sql sql-server random selection

对于审计项目,需要为每个员工随机选择三个跟踪 ID,并且不能重复。想知道是否可以用 SQL 实现?

SQL Server 数据示例:

联系 跟踪号码
史密斯,玛丽 TRK65152
史密斯,玛丽 TRK74183
史密斯,玛丽 TRK35154
史密斯,玛丽 TRK23117
史密斯,玛丽 TRK11889
琼斯、沃尔特 TRK17364
琼斯、沃尔特 TRK91736
琼斯、沃尔特 TRK88234
琼斯、沃尔特 TRK80012
琼斯、沃尔特 TRK55874
托尼·威廉姆斯 TRK58142
托尼·威廉姆斯 TRK47336
托尼·威廉姆斯 TRK13254
托尼·威廉姆斯 TRK28596
托尼·威廉姆斯 TRK33371

Tim*_*sen 5

您可以ROW_NUMBER在此处使用随机排序:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Associate ORDER BY NEWID()) rn
    FROM yourTable
)

SELECT Associate, TrackingID
FROM cte
WHERE rn <= 3;
Run Code Online (Sandbox Code Playgroud)