считать разные значения одного столбца в Laravel - PullRequest
0 голосов
/ 22 января 2020

Я работаю на Laravel Framework. У меня есть таблица с именем 'traffi c', которая содержит данные о посещенных пользователях моего веб-сайта, как показано ниже:

id browser
1  Firefox
2  Firefox
3  Chrome
4  IE
5  Chrome

Теперь я хочу получить общее количество каждого браузера, использованного в одном запрос. Вот мой текущий запрос:

Traffic::selectRaw("count(case when browser = 'IE' then 1 end) as IE")
    ->selectRaw("count(case when browser = 'Firefox' then 1 end) as Firefox")
    ->selectRaw("count(case when browser = 'Chrome' then 1 end) as Chrome")
    ->groupBy('browser')
    ->first();

Какие результаты похожи на:

Row 1: IE=0, Firefox=0, Chrome=2
Row 2: IE=0, Firefox=2, Chrome=0
Row 3: IE=1, Firefox=0, Chrome=0

Но я хочу, чтобы результат был похож на:

Row 1: IE=1, Firefox=2, Chrome=2

1 Ответ

3 голосов
/ 22 января 2020

Удалите GROUP BY logi c, чтобы получить сводку на уровне таблицы:

Traffic::selectRaw("COUNT(CASE WHEN browser = 'IE' THEN 1 END) AS IE")
    ->selectRaw("COUNT(CASE WHEN browser = 'Firefox' THEN 1 END) AS Firefox")
    ->selectRaw("COUNT(CASE WHEN browser = 'Chrome' THEN 1 END) AS Chrome")
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...