我之前在这里看到过类似的问题,但是我的问题是我无法通过唯一ID进行分区。
这是我的表Request_Data的样子:
let result = Array.from(new Set(bigString.split("\n")))
.join("\n")
.toString();
我希望查询返回:
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
将其放入单词中,我的表引用了一个外键请求ID,该ID包含多个要检查的订单代码,每个订单代码都有一个区域。区域的订单代码都将立即审核,因此我只需要每个区域的每个请求ID返回一条记录即可获得该区域的审核状态。
我知道这是一个奇怪的设计;我没有设置它,但是我必须使用它。谢谢。
答案 0 :(得分:4)
我认为您只想要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
对的第一条记录。
答案 1 :(得分:0)
您需要使用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