ROW_NUMBER, ROW_OVER, OVER(PARTITION BY), QUALIFY

General

ROW_NUMBER, ROW_OVER, OVER(PARTITION BY), QUALIFY

When is it best to use ROW_NUMBER, ROW_OVER, OVER(PARTITION BY), QUALIFY? 

What is the best way to remove duplicates from queries, and does it hurt performance/tuning?