В базе есть таблица лог билинга, как с помощью инстантовских запросов получить желаемое.
В документации ни слова нет о том как и что просить в базе. Все что удавалось узнать это случайно из видеотуториалов или ковыряясь в коде. Как работают агрегатные функции вообще нигде не попадалось…
Помогите кто в теме!
1. Запрашиваем пользователя с самым большим балансом?
2. Считываем его "имя"
3. Выводим
Они работают так же, как и должны согласно документации MySQL) Отдельная документация для них и не нужна.Как работают агрегатные функции вообще нигде не попадалось…
В админке же показывает кто самый богатый.
Вы путаете "богатый" и "высокооплачиваемый". Богатый — это у кого баланс высокий. А высокооплачиваемый — у кого оборот самый большой, или средний чек большой.1. Запрашиваем пользователя с самым большим балансом?
Рачей, в модели есть метод select(), в котором вы можете указать что вам нужно вытащить из базы. Например select('SUM('sum')', 'oborot')
В крайнем случае если прям совсем сложно будет разобраться — можете хоть на голом sql запрос написать и запустить через $model->db->query($sql);
Рачей, в модели есть метод select(), в котором вы можете указать что вам нужно вытащить из базы. Например select('SUM('sum')', 'oborot')
В крайнем случае если прям совсем сложно будет разобраться — можете хоть на голом sql запрос написать и запустить через $model->db->query($sql);
Спасибо. Я не то искал… Я думал у них уже написаны агрегатные запросы при помощи каких то своих замутов типа
->filterLt() или
selectOnly(
…
Как мне сделать сортировку по профиту?
$model->selectOnly('user_id, SUM(amount) AS profit, summ, nickname') ->filterGt('type', '0') ->filterIsNull('summ') ->groupBy('user_id') ->limit('10') ; $model->joinLeft('cms_users', 'u', 'u.id = i.user_id');
->orderBy('profit')
->orderBy('profit')
Пробовал я и так, и порядковым номером столбца
Ошибка в запросе БД: Неизвестный столбец 'i.profit' в 'order clause' SELECT user_id, SUM(amount) AS profit, nickname FROM cms_billing_log i WHERE (i.type > '0') AND (i.summ IS NULL) GROUP BY i.user_id ORDER BY i.profit desc LIMIT 10 Последние вызовы:
$model->order_by = 'profit desc';
Модель автоматом подставляет "i." если вызывать метод orderBy
Cпасибо!!! Сработало.😊
Рачей, меняйте поле $model->order_by напрямую
$model->order_by = 'profit desc';
Модель автоматом подставляет "i." если вызывать метод orderBy