Вместо использования последовательности выражений LINQ, вы могли бы сначала сгладить список хранилищ в SystemUser, а затем использовать результат, чтобы найти максимальное, минимальное и среднее значения.Попробуйте это:
var stores = context.SystemUser
.Include(x => x.Stores)
.ThenInclude(a => a.StoreStockDetail)
.Where(b => b.UserName == userName).SelectMany(user => user.Stores);
var report = new
{
FrontStoreMin = stores.Min(store => store.StoreStockDetail.FrontStore),
FrontStoreMax = stores.Max(store => store.StoreStockDetail.FrontStore),
FrontStoreMean = stores.Average(store => store.StoreStockDetail.FrontStore),
// do the same for BackStore and ShoppingWindow
};