They are a tool, understand what they must do in order to process and you'll be able to answer something like this yourself.
select a, b, c,
rank() over (order by a),
rank() over (order by b),
rank() over (order by c)
pretty simple query - does a TON of work though, the data must be sorted three times.
Analytics can make possible the impossible - and do so efficiently. But you need to understand that they will sort, they will use temp and if you make them sort 50 times in a single query - so be it, they will (but then your question is forcing them to...)
In general, analytics are great for answering "really big" questions or questions against "small sets"
You have to remember though - the order of processing is
a) where clause
c) then order by/aggregates
so, if you hide an analytic in a view, eg:
select emp.*, sum(sal) over (partition by deptno) deptno_sum_sal
and you do a query like:
select * from V where empno = 1234;
don't expect that to use an index on empno - for you see, we have to compute the sum(sal) for the entire DEPTNO, not just for that empno - this is something people frequently overlook.
You get the right answer - but they expect the index to be used - but we cannot, for if we did - we'd compute the wrong sum(sal)...