How to use aggregation when range query size is greater than 10000

Hi everyone.
I want to create a date range query on my documents.
It is possible that my user request a full day query (00:00:00 to 23:59:59)
and often the result size is nearly 40000 (greater than 10000).
I want to show a time-value chart from the results and so I have to split these 40000 results to 4 different lists (because the elasticsearch does not allow return more than 10000 in a query).
I'd like to be able to do the below:

  1. create a date range query for the first 10000 results.
  2. use aggregation to include second, third and forth 10000 results to 3 other result set simultaneously. In fact, I don't want to repeat the same query to return next 10000 results from the client, But I'd like to carry out all 40000 results by one query and pass to my user clients, so that user could select one of them from a drop-down menu to create corresponding chart.

Is it possible at all and if is it a good solution at all?