And every time I've learned something about the intermediate result I can add another line, or save the result in a new variable and branch my exploration. And I can easily just highlight and run and number of of steps from step 1 onwards.
Yeah, sure, I do a lot of such things in RAM in Elixir, some Lisp, PHP or, if I must, Python.
But sometimes I just happen to have just imported a data set in a SQL client or I'm hooked into a remote database where I don't have anything but the SQL client. When developing an involved analysis query nesting also comes in handy sometimes, e.g. to mock away a part of the full query.
Edit: It's a rather neat and underestimated property of query results that you can query them in the next scope.