diff --git a/app/Http/ViewComposers/ProfileStatsComposer.php b/app/Http/ViewComposers/ProfileStatsComposer.php index 6f93ded..ae632a2 100644 --- a/app/Http/ViewComposers/ProfileStatsComposer.php +++ b/app/Http/ViewComposers/ProfileStatsComposer.php @@ -35,9 +35,27 @@ class ProfileStatsComposer } // 概況欄のデータ取得 + $average = DB::select(<<<'SQL' +SELECT + avg(span) AS average +FROM + ( + SELECT + extract(epoch from ejaculated_date - lead(ejaculated_date, 1, NULL) OVER (ORDER BY ejaculated_date DESC)) AS span + FROM + ejaculations + WHERE + user_id = :user_id + ORDER BY + ejaculated_date DESC + LIMIT + 30 + ) AS temp +SQL + , ['user_id' => $user->id]); + $summary = DB::select(<<<'SQL' SELECT - avg(span) AS average, max(span) AS longest, min(span) AS shortest, sum(span) AS total_times, @@ -56,6 +74,6 @@ FROM SQL , ['user_id' => $user->id]); - $view->with(compact('latestEjaculation', 'currentSession', 'summary')); + $view->with(compact('latestEjaculation', 'currentSession', 'average', 'summary')); } } diff --git a/resources/views/components/profile-stats.blade.php b/resources/views/components/profile-stats.blade.php index 2ef9ce3..09e936c 100644 --- a/resources/views/components/profile-stats.blade.php +++ b/resources/views/components/profile-stats.blade.php @@ -8,7 +8,7 @@ @endif
概況
-

平均記録: {{ Formatter::formatInterval($summary[0]->average) }}

+

平均記録: {{ Formatter::formatInterval($average[0]->average) }}

最長記録: {{ Formatter::formatInterval($summary[0]->longest) }}

最短記録: {{ Formatter::formatInterval($summary[0]->shortest) }}

合計時間: {{ Formatter::formatInterval($summary[0]->total_times) }}