An example of how the ordering isn't what you think it is.
The select statement is:
select e.department_id department_id,
-- Groups rownumbers into 3-columns-per-row
max(decode(mod(rn, 3), 1, e.last_name, null)) name1,
max(decode(mod(e.rn, 3), 2, e.last_name, null)) name2,
max(decode(mod(e.rn, 3), 0, e.last_name, null)) name3
from (select emp.department_id,
emp.last_name,
row_number() over (partition by emp.department_id order by emp.last_name) rn
from oehr_employees emp) e
group by e.department_id,
-- Groups rownumbers into 3-columns-per-row
ceil(e.rn/3)
order by department_id,name1
If you apply a column break on the department the ordering on the name1 column changes.