我做了以下查询来解决这个问题:计算每个用户执行了多少操作(Django 管理员)。
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 | |
+-----------------+----------------------+------+-----+---------+----------------+
谢谢:)
最佳答案
您应该对不在聚合函数中的列进行分组 在你的情况下,你应该按用户分组..实例
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;
关于mysql - 显示每个用户的操作数,按操作 ID 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44419478/