потому что второй раз, rownum - это не rownum внутреннего SQL, а rownum внешнего!
вот почему вам нужно «переименовать» его, чтобы он стал «исправленным».
в противном случае фильтр rownum = 2 никогда не совпадает, поскольку каждая строка является первой.