[英]How to split a comma delimited column into rows along with a non-unique ID column through SQL
[英]SQL - Select rows with distinct one column for each non-unique ID
我之前在这里看到过类似的问题,但我的问题的不同之处在于我无法通过唯一 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 返回一条记录即可获得该区域的审核状态。
我知道这是一个奇怪的设计; 我没有设置它,但我必须使用它。 谢谢。
我想你只想要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
对的第一条记录。
您需要使用 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.