Упорядочить по количеству кохана и считать

У меня есть запрос orm, как это:

$userCountries = ORM::factory('User')
                ->select(array(DB::expr('countries.code, COUNT("countries.id") as total')))
                ->join('countries')
                ->on('user.country_id', '=', 'countries.id')
                ->group_by('country.name')
                ->order_by('total', 'DESC')
                ->find_all();

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

Я не знаю, что здесь не так. Я потратил на это 3 часа безуспешно.

Что не так с этим запросом?

1 ответ

Ваш SELECT Params неверен->select('countries.code', array(DB::expr('COUNT("countries.id")', 'total')))

Я думаю, что Группа должна быть ->group_by('countries.name') instead of ->group_by('country.name')

Таким образом, ваш общий запрос будет выглядеть

$userCountries = ORM::factory('User')
            ->select('countries.code', array(DB::expr('COUNT("countries.id")', 'total')))
            ->join('countries')
            ->on('user.country_id', '=', 'countries.id')
            ->group_by('countries.name')
            ->order_by('total', 'DESC')
            ->find_all();`

Проверь это...

Другие вопросы по тегам