id | user_id | date_tracked
---------------------------------------------
1001 | 1 | 10-10-2013
1002 | 2 | 10-10-2013
1003 | 3 | 10-10-2013
1004 | 1 | 10-11-2013
1005 | 2 | 10-12-2013
我有一个与此类似的表,用于跟踪用户和日期。我需要查找在选定日期发生的用户首次输入次数。该表将包含大量数据,这就是为什么我想依靠查询来处理它而不是一堆 PHP 循环。
即2013 年 11 月 10 日,用户 1 访问但不是第一次访问,因此返回 0 2013 年 10 月 10 日,用户 1 和 2 第一次访问,返回 2。
显然,使用简单的查询可以计算指定日期的条目数,但是如果 user_id 不在之前的行中,哪种方法允许我只计算。
该表按日期排序,这意味着较新日期的 ID 永远不应小于较旧日期。
有什么想法吗?谢谢!
最佳答案
按用户查找所有“第一次”日期:
SELECT user_id, MIN(date_tracked) AS first_date
FROM table
GROUP BY user_id
计算每个日期的“第一次”:
SELECT t.first_date, COUNT(*) AS nb
FROM (SELECT user_id, MIN(date_tracked) AS first_date
FROM table
GROUP BY user_id) t
GROUP BY t.first_date
关于php - 计算/检查 mysql 表中条目的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572614/