2017-06-07 13 views
0

この問題を解決するために、次のクエリを実行しました。各ユーザーが実行したアクション数をカウントします。(Django管理者)アクションIDでグループ化された各ユーザーのアクション数を表示

SELECT Count(l.id), 
     u.username, 
     u.first_name, 
     u.last_name, 
     u.is_staff 
FROM django_admin_log l, auth_user u 
WHERE u.id = l.user_id 
GROUP BY u.id 
ORDER BY 1 DESC; 

ここでは、アクションIDごとにグループ化された各ユーザーのアクションの数を表示します。考え方は上記のクエリと同じですが、アクションタイプを知っています。

django_admin_logテーブル構造:

+-----------------+----------------------+------+-----+---------+----------------+ 
| Field   | Type     | Null | Key | Default | Extra   | 
+-----------------+----------------------+------+-----+---------+----------------+ 
| id    | int(11)    | NO | PRI | NULL | auto_increment | 
| action_time  | datetime    | NO |  | NULL |    | 
| user_id   | int(11)    | NO | MUL | NULL |    | 
| content_type_id | int(11)    | YES | MUL | NULL |    | 
| object_id  | longtext    | YES |  | NULL |    | 
| object_repr  | varchar(200)   | NO |  | NULL |    | 
| action_flag  | smallint(5) unsigned | NO |  | NULL |    | 
| change_message | longtext    | NO |  | NULL |    | 
+-----------------+----------------------+------+-----+---------+----------------+ 

感謝:)

答えて

1

あなたべきではない集計関数 で、あなたがユーザーのためによりグループべきあなたのケースでCOLためでグループ..インスタンス

SELECT Count(l.id), 
     u.username, 
     u.first_name, 
     u.last_name, 
     u.is_staff 
    FROM django_admin_log l, auth_user u 
    WHERE u.id = l.user_id 
    GROUP BY 
      u.username, 
     u.first_name, 
     u.last_name, 
     u.is_staff 
    ORDER BY 1 DESC; 
関連する問題