可以使用SQL语句来实现。假设表名为table,包含ID和日期两列,其中日期格式为yyyy-mm-dd。
SELECT
ID,
YEARWEEK(date, 1) as WeekNum,
CONCAT(MIN(date), " to ", MAX(date)) as DateRange,
COUNT(*) as Count
FROM table
GROUP BY ID, WeekNum;
解释:
YEARWEEK(date, 1)
函数用于返回YYYY年的ISO周的数字值(即从1开始的一年中的周数),其中周一为第一天。
CONCAT(MIN(date), " to ", MAX(date))
函数用于组合每周的最小日期和最大日期,以建立日期范围。
COUNT(*)
函数用于计算每周的记录数。
GROUP BY ID, WeekNum
用于将记录按ID和周数分组。
这样就能够得到按ID分组并按周统计的结果,同时输出日期/周。
上一篇:按ID分组比较两列R
下一篇:按ID分组并保留最新日期