我有一张如下表
ID Code Age
----------------
1 4758 21
1 7842 14
1 9821 23
1 6842 9
2 8472 24
2 7558 31
2 7841 28
3 7881 38
3 8794 42
3 4871 43
Run Code Online (Sandbox Code Playgroud)
对于每个ID,我想像这样随机选择其中一行
ID Code Age
----------------
1 7842 14
2 7841 28
3 4871 43
Run Code Online (Sandbox Code Playgroud)
这可能在SQL Server中吗?
select top 1 with ties id,code,age
from
table
order by row_number() over (partition by id order by rand())
Run Code Online (Sandbox Code Playgroud)
更新:按照随机顺序返回行,你必须使用NEWId,因为RAND() is fixed for the duration of the SELECT on MS SQL Server.
select top 1 with ties id,code,age
from
table
order by row_number() over (partition by id order by NEWID())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3940 次 |
| 最近记录: |