2015-11-20 1 views
0

Я хочу, чтобы подсчитать количество даты появляются в моей таблице с помощью Laravel 5 и SQL-запрос:Как использовать COUNT, GROUP BY и DATE_FORMAT в одном запросе Laravel 5 SQL?

$tanggal = DB::table('entry')->count('*')->groupBy(DATE_FORMAT(created_at,'%d-%m-%Y')); 

Но он не может работать. Помоги мне.

+0

'он не может работать' ... можете ли вы быть более конкретным? Существуют ли ошибки в ваших журналах? Вы видите ошибку в своем браузере? –

+0

ошибка: «Вызовите функцию-членную группуBy() на целое число« –

ответ

0

Когда вы звоните count(), он возвращает номер (как вы видели в своей ошибке). Попробуйте поменять функции и настройки параметра groupBy необходимо рассчитать сырье:

$tanggal = DB::table('entry') 
      ->groupBy(DB::raw("DATE(created_at)") 
      ->count('*'); 

При вызове table() он запускает экземпляр построителя запросов. Многие методы построения запросов снова возвращают построитель запросов для цепочки методов, но некоторые из них являются окончательными и возвращают результат, например get(), first(), и в этом случае count().

Я не тестировал вышеуказанный код, но он должен быть близок. Вы также заметите, что я изменил его с DATE_FORMAT до DATE. Я вижу, что вы пытаетесь исключить часть метки времени, и вы можете просто использовать последний вместо переформатирования (что может замедлить запрос крошечным битом).


EDIT:

Ok, ваш вопрос не был объяснен очень хорошо. Из вашего комментария, я думаю, это то, что вы ищете. Кроме того, не забывайте, что Eloquent - это фантастический ORM, но это не серебряная пуля, и иногда вам могут потребоваться только простые простые SQL-запросы.

$results = DB::table('entry') 
      ->addSelect(DB::raw('COUNT("*") as total)') 
      ->groupBy(DB::raw("DATE(created_at)") 
      ->get(); 
+0

, но я получаю только один результат с помощью этого запроса, как получить все результаты? –

+0

Если вы хотите получить все результаты, 'count()' не то, что вы хотите сделать. Этот метод подсчитывает количество записей, которые соответствуют, а затем возвращает общий счетчик. Если вам нужны записи вместо count, замените '-> count ('*')' на '-> get()' –

+0

, но я хочу получить всю дату и номер ее появления –

Смежные вопросы