all*_*ace 0 sql t-sql sql-server distinct
我之前曾在这里看到过类似的问题,但我的问题的不同之处在于我无法通过唯一的 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
Run Code Online (Sandbox Code Playgroud)
我希望我的查询返回:
Request_ID Location Review_Status
==================================================
1 HQ Not Reviewed
1 Scranton Reviewed
1 Binghamton Not Reviewed
2 Scranton Reviewed
2 Stamford Not Reviewed
Run Code Online (Sandbox Code Playgroud)
换句话说,我的表引用了一个外键请求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;
Run Code Online (Sandbox Code Playgroud)
request_id这将返回每个/对的第一条记录location。
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |