我正在尝试编写一个SQL查询,从随机查询中选择前4个,这样我就可以对某些情况进行质量检查。每个案例都有一个与客户绑定的帐号。问题是每个案例都有一个唯一的号码,但可能有相同的帐号。
我要做的是,如果两个案例的帐号相同,则让SQL选择一个具有不同帐号的新行。
Select Top 4
Account,
CaseNum
From dbo.tblRequest
Where LoggedDate Between GetDate() - 7 and GetDate() - 1
Order By NewId();
结果将显示4个帐户,但有时可能会显示同一帐户两次。如上所述,我想只显示7天不同的帐户。
我尝试了不同的关键字,但在某些查询结果中仍会显示两次帐户。
答案 0 :(得分:1)
尝试以下声明。使用row_number只能获得相同帐号的行。
SELECT * FROM (
Select
Account,
CaseNum,
ROW_NUMBER()OVER(PARTITION BY Account ORDER BY GETDATE()) AS rn
From dbo.tblRequest
Where LoggedDate Between GetDate() - 7 and GetDate() - 1
) AS t WHERE t.rn=1
Order By
NewId()