I need to be able to compare report results over the period of a time. The report itself takes minutes to run for a 1 day result set. I feel to get a trend analysis over a month, the result set could take hours to return. Is there any way to approach this differently to take this long running query and run it over a larger time frame?
Your best bet for this would be to set up summary indexing over this data set. Summary indexing will allow you to distill the raw data down to the types of statistics you reference/use frequently, making the important data easy to search over long periods of time. Here's the guide for getting summary indexing set up:
https://docs.splunk.com/Documentation/Splunk/7.0.3/Knowledge/Usesummaryindexing