Пример #1
0
 /**
  * Средняя оценка юзера
  * @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;
 }