SQL-为每个非唯一ID选择具有不同一列的行

问题描述 投票:0回答:1

我之前在这里看到过类似的问题,但是我的问题是我无法通过唯一ID进行分区。

这是我的表Request_Data的样子:

ID  Request_ID  Location  Order_Code  Review_Status
=================================================
1   1           HQ         SXXXXF     Not Reviewed
2   1           Scranton   ASDFGH     Reviewed
3   1           Scranton   ABCDEF     Reviewed
4   1           Binghamton PSDFJG     Not Reviewed
5   2           Scranton   GGGGGG     Reviewed
6   2           Stamford   PRWERE     Not Reviewed
7   2           Scranton   UYUIFG     Reviewed

我希望我的查询返回:

Request_ID  Location    Review_Status
==================================================
1           HQ          Not Reviewed
1           Scranton    Reviewed
1           Binghamton  Not Reviewed
2           Scranton    Reviewed
2           Stamford    Not Reviewed

将其写成文字,我的表引用了一个外键请求ID,该ID包含多个要检查的订单代码,每个订单代码都有一个区域。区域的订单代码都将立即进行审核,因此我只需要每个区域的每个请求ID返回一条记录即可获得该区域的审核状态。

我知道这是一个奇怪的设计;我没有设置它,但是我必须使用它。谢谢。

sql sql-server tsql distinct
1个回答
0
投票

我认为您只想要row_number()

select t.*
from (select t.*,
             row_number() over (partition by request_id, location order by id) as seqnum
      from t
     ) t
where seqnum = 1;

这将返回每对request_id / location对的第一条记录。

© www.soinside.com 2019 - 2024. All rights reserved.