Ниже структура моей базы данныхLaravel получить количество результатов, основанных на GroupBy
id name country province status updated_at
1 A US TX 2 [timestamp]
2 B UK LON 1 [timestamp]
3 C US TX 2 [timestamp]
4 D US WA 2 [timestamp]
5 E US WA 3 [timestamp]
6 F US WA 2 [timestamp]
7 G US TX 1 [timestamp]
Информация из формы (критерии поиска)
- страна (США) в этом примере
- Дата начала, Дата окончания
Мне нужно получить следующий счет и информацию.
- Группа по провинции {
- $ са = счетчик (состояние '1')
- $ CB = Количество (состояние '2')
- $ куб.см = счетчик (состояние '3') }
Ожидаемый результат :: 'США' критерии поиска: -
Province TX
Status '1': 1
Status '2': 2
Status '3': 0
Province WA
Status '1': 0
Status '2': 2
Status '3': 1
Ниже то, что я пытаюсь сделать, но не
$users = DB::table('users')
->where('country', $b)
->select('province', DB::raw('count(*) as total'))
->groupBy('province')
->whereBetween('updated_at', [
\Carbon\Carbon::createFromDate($d, $e)->startOfMonth(),
\Carbon\Carbon::createFromDate($f, $g)->endOfMonth()
])->orderBy('created_at','desc')->get();