これを分割して欲しいものを見つける方法があるかもしれないと思いますが、見えません。製品セットに関するわずかに正規化されていないデータがあります。
SetItemID ComponentItemID quantity IsPrimary
123 234 1 1
123 345 2 0
456 567 3 1
456 678 2 0
quantity
記述されているが、たとえば、IsPrimary
コンポーネントのquantity
>'IsPrimary=0component's
数量であるセットを見つける必要があります。また、コンポーネント間などで数量が等しいセットを見つける必要があります。必要に応じて、これに複数のステートメントを使用してもかまいません。
私がこれまでに持っているのは、これを行う正しい方法である場合とそうでない場合がある部分的なステートメントですが、セット内の数量を比較する方法を理解するPARTITION
ことはできません:
WITH setdata as
(select *, row_number() OVER(
PARTITION by s.setitemid order by s.setitemid) position from set_table s )
// descending just to get newer sets
SELECT* from setdata order by setitemid desc