Posted in

Problema con el uso de groupBy

Si realizando la siguiente consulta, en la que queremos recoger solo los años extraidos de una columna DATE:

$years_festive_days = VacationFestiveDay::select('date')->groupBy(DB::raw('YEAR(date)'))
            ->orderBy('date', 'desc')
            ->get();

Nos devulve el siguiente error:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated

Podemos modificar nuestra consulta de la siguiente manera:

$years_festive_days = VacationFestiveDay::select(DB::raw('YEAR(date) as year_only'))
            ->groupBy(DB::raw('YEAR(date)'))
            ->orderBy('year_only', 'desc')
            ->get();

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.