Select 条无重复的随机记录

Select random records with no duplicates

对于审计项目,需要select每个员工随机三个跟踪 ID,并且不能重复。想知道 SQL 是否可行?

示例 SQL 服务器数据:

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

您可以在这里使用 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;