SQL - Select 行,每个非唯一 ID 具有不同的一列

SQL - Select rows with distinct one column for each non-unique ID

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

这是我的 table 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

我想查询 return:

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

说一下,我的table引用了一个外键request id,里面有多个需要审核的order code,每个order code都有一个area。一个区域的订单代码一次全部审核,所以我只需要为每个区域的每个请求 id 记录 returned 来获取该区域的审核状态。

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

我想你只是想要 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;

这 returns 每个 request_id/location 对的第一条记录。

你需要使用 rownumber()

例如:

SELECT
NEW_TBL.*
FROM
(SELECT
             ROW_NUMBER() OVER(PARTITION BY Location ORDER BY ID) AS ROWNUM
            ,TBL.*      
      FROM Request_Data TBL
  ) NEW_TBL
WHERE 
NEW_TBL.ROWNUM = 1