我正在试图找出如何从表中返回每个帐户返回的单个随机行.该表每个帐户有多行,或者在某些情况下只有一行.我希望能够在我的选择中得到一个随机结果,所以每天我运行相同的语句我可能会得到不同的结果.
这是查询的基础:
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行.
任何建议将不胜感激.我正用这个打我的头靠在墙上.
谢谢
您可以与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)