Strange SQL execut result
===

select unique owner from all_tables
where sysdate-50 < (select last_analyzed from dual)
;

I just wrose above code and it is strange the result is different with below code.

select unique owner from all_tables;

However if I execute (select last_analyzed from dual) separatedly, a error will pop up.

I am confused how the result is generated.