我有一个包含两个表的数据库:一个表列出了几个用户,另一个表列出了这些用户进行的每个操作、进行操作的用户的 ID 以及操作的日期。
我正在尝试计算每个用户每个月的操作次数。我不确定如何有效地执行此操作:有人有任何建议吗?
最佳答案
使用MONTH()
从 DATE
中提取月份,然后 GROUP BY
MONTH
和 USER_ID
:
SELECT u.user_id, MONTH(a.date), COUNT(*) number_of_actions
FROM users u INNER JOIN actions a ON (u.user_id = a.user_id)
GROUP BY u.user_id, MONTH(a.date)
此外,如果用户操作跨越多年,并且您希望 2011 年 1 月 和 2012 年 1 月 有不同的计数,请按两者 YEAR
和 MONTH
代替:
SELECT u.user_id, YEAR(a.date), MONTH(a.date), COUNT(*) number_of_actions
FROM users u INNER JOIN actions a ON (u.user_id = a.user_id)
GROUP BY u.user_id, YEAR(a.date), MONTH(a.date)
关于mysql - 如何有效地计算用户在一个月内的操作次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12553752/