We need to select all the columns.
Condition: Within a single MAT+PLANT If any vendor crosses 80% we take records of that vendor only and reject other records within that MAT+PLANT. If within a single MAT+PLANT If all the vendors have below 80%, we consider all the records.
As shown in the image: Have attached input and output
Advertisement
Answer
You can use exists
:
x
select t.*
from t
where t.totalpercent >= 80.0 or
not exists (select 1
from t t2
where t2.mat = t.mat and t2.totalpercent >= 80.0
);
You can also use window functions:
select t.*
from (select t.*,
max(totalpercent) over (partition by mat) as max_totalpercent
from t
) t
where percent >= 80.0 or max_totalpercent < 80.0;