我之前在这里看到过类似的问题,但是我的问题是我无法通过唯一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返回一条记录即可获得该区域的审核状态。
我知道这是一个奇怪的设计;我没有设置它,但是我必须使用它。谢谢。
我认为您只想要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
对的第一条记录。