Q: How long will it take you to run one mile?
A: ¯\_(ツ)_/¯
Q: OK, so what's the average time it takes you run a mile?
A: 8 minutes
Q: So if you start now, it'll take you 8 minutes, right?
A: The route is all uphill into a strong breeze.
Q: So 9 minutes?
A: And I've hurt my knee
Q: 10 minutes?
A: Let's stop guessing and time it!
If you want to know how long it'll take someone to run a mile on a specific route & date, the only way to know for sure is to time the run. Sure, you can look at their past runs, the route and conditions to get a reasonable estimate. But that's the best you'll get - a guess. The exact time depends on the conditions on the day.
It's the same with running a query. You could do extensive analysis of what's in your tables and how they relate to your query. And come up with The Number of Rows This Query Will Return.
But after you complete this and before you run it, someone else inserts 10,000 rows. Making all that analysis useless.
An explain plan uses stats to (hopefully) generate a reasonable estimate of the number of rows it'll return. But this can be wrong for many reasons:
https://asktom.oracle.com/Misc/when-explanation-doesn-sound-quite.html So, the only way to know for certain how many rows a query fetches is to:
Run the query!