Sql server 如果一列的值相等,则选择不同的行

Sql server 如果一列的值相等,则选择不同的行,sql-server,toad,Sql Server,Toad,我正在尝试编写一个SQL查询,从随机查询中选择前4名,以便对某些情况进行质量检查。每个案例都有一个与客户关联的账号。问题是,每个案例都有一个唯一的编号,但可能有相同的帐号 Select Top 4 Account, CaseNum From dbo.tblRequest Where LoggedDate Between GetDate() - 7 and GetDate() - 1 Order By NewId(); 我想做的是,如果两种情况下的帐号相同,让SQL选择一个具有

我正在尝试编写一个SQL查询,从随机查询中选择前4名,以便对某些情况进行质量检查。每个案例都有一个与客户关联的账号。问题是,每个案例都有一个唯一的编号,但可能有相同的帐号

Select Top 4
    Account,
    CaseNum
From dbo.tblRequest
Where LoggedDate Between GetDate() - 7 and GetDate() - 1 
Order By NewId();
我想做的是,如果两种情况下的帐号相同,让SQL选择一个具有不同帐号的新行

Select Top 4
    Account,
    CaseNum
From dbo.tblRequest
Where LoggedDate Between GetDate() - 7 and GetDate() - 1 
Order By NewId();
结果将显示4个帐户,但有时同一帐户可能显示两次。如上所述,我只想在7天内显示不同的帐户


我已经尝试了这个独特的关键字,但在某些查询结果中,它仍然会显示两次帐户。

试试下面的语句。使用行号仅获取同一accountNumber的行

    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()

谢谢你帮了我一整天的忙。