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

时间:2017-07-19 20:41:52

标签: sql-server toad

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

我要做的是,如果两个案例的帐号相同,则让SQL选择一个具有不同帐号的新行。

Select Top 4
    Account,
    CaseNum
From dbo.tblRequest
Where LoggedDate Between GetDate() - 7 and GetDate() - 1 
Order By NewId();

结果将显示4个帐户,但有时可能会显示同一帐户两次。如上所述,我想只显示7天不同的帐户。

我尝试了不同的关键字,但在某些查询结果中仍会显示两次帐户。

1 个答案:

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