/** * Средняя оценка юзера * @param $group_id * @return array|\yii\db\ActiveRecord[] */ public static function getThisGroupUsersAverageMark($group_id) { $group_users = []; $group_actions = MarkActions::findAll(['group_id' => $group_id]); $id_actions = []; foreach ($group_actions as $act) { $id_actions[] = $act->id; } $usermarks = self::find()->select(['user_id, ball, COUNT(*) as cnt, AVG(ball) as avg '])->where('action_id IN (' . implode(',', $id_actions) . ')')->groupBy('user_id')->orderBy(['avg' => SORT_DESC])->all(); //SELECT model, COUNT(model) AS Qty_model, // AVG(price) AS Avg_price //SELECT * FROM dates GROUP BY name; return $usermarks; }