分组依据中的SQL Server 2014随机值

Mik*_*e S 7 sql-server random

我正在试图找出如何从表中返回每个帐户返回的单个随机行.该表每个帐户有多行,或者在某些情况下只有一行.我希望能够在我的选择中得到一个随机结果,所以每天我运行相同的语句我可能会得到不同的结果.

这是查询的基础:

select number, phonenumber
from phones_master with(nolock)
where phonetypeid = '3'
Run Code Online (Sandbox Code Playgroud)

这是一个示例结果集

number         phonenumber    
--------------------------
4130772,       6789100949    
4130772,       6789257988
4130774,       6784519098
4130775,       6786006874
Run Code Online (Sandbox Code Playgroud)

调用的列Number是帐户.我想返回一个随机行.因此,基于上面的示例结果集,查询应该返回3行.

任何建议将不胜感激.我正用这个打我的头靠在墙上.

谢谢

Joh*_*tti 8

您可以与Row_Number()一起使用WITH TIES

Select Top 1 with ties *
 From  YourTable
 Order by Row_Number() over (Partition By Number Order By NewID())
Run Code Online (Sandbox Code Playgroud)

退货(例如)

number  phonenumber
4130772 6789257988
4130774 6784519098
4130775 6786006874
Run Code Online (Sandbox Code Playgroud)

  • "有领带的前1名"我喜欢;) (3认同)