[英]DISTINCT to only one column
我正在使用一個查詢,並嘗試對其進行修改,以使其僅返回唯一的“ lodnum”,其中有兩個以上的“ lodnum”條目。
我研究了ROW_NUMBER()個OVER / PARTITIONS。 我只是似乎無法讓它做我想做的事。
查詢是:(很抱歉格式化)
SELECT i.lodnum,
i.prtnum,
i.lotnum,
sum(i.untqty),
i.ftpcod,
i.invsts
FROM inventory_view i,
locmst m
WHERE i.stoloc = m.stoloc
AND m.arecod = 'PART-HSY'
AND i.prtnum NOT IN (SELECT i2.prtnum
FROM inventory_view i2,
locmst m2
WHERE i2.stoloc = m2.stoloc
AND m2.arecod = 'PART-HSY'
AND i2.lotnum = i.lotnum
AND i2.invsts = i.invsts
GROUP BY i2.prtnum
HAVING COUNT(*) = 1)
AND i.lodnum IN (SELECT i3.lodnum FROM inventory_view i3, locmst m3
WHERE i3.stoloc = m3.stoloc
AND m3.arecod = 'PART-HSY'
AND i3.lotnum = i.lotnum
AND i3.invsts = i.invsts
GROUP BY i3.lodnum
HAVING COUNT(*) > 1)
GROUP BY
i.lodnum,
i.stoloc,
i.prtnum,
i.lotnum,
i.ftpcod,
i.invsts
ORDER BY
i.prtnum,
i.lotnum,
i.invsts
它看起來像:
with t as (
YOUR QUERY HERE WITHOUT ORDER BY
)
select t.*
from (select t.*, row_number() over (partition by lodnum order by lodnum) as seqnum
from t
) t
where seqnum = 1
order by prtnum, lotnum, invsts;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.