SQL如何统计每个id分组截至指定日期的累计数据行数
实现方案
1. Pandas 处理DataFrame实现
逻辑:先筛选出所有日期≤3的记录,再按id分组统计行数,最后补充固定为3的day字段即可。
代码示例:
# 筛选截至第3天的所有记录 df_filter = df[df['day'] <= 3] # 按id分组统计行数 result = df_filter.groupby('id', as_index=False).size().rename(columns={'size': 'count'}) # 补充day字段并调整列顺序 result['day'] = 3 result = result[['day', 'id', 'count']]
输出的result就是你需要的结果。
2. SQL 语句实现
如果你是直接从数据库查询数据,用如下语句即可:
SELECT 3 AS day, id, COUNT(*) AS count FROM 你的表名 WHERE day <= 3 GROUP BY id
逻辑和Pandas实现一致:先通过WHERE条件过滤掉大于3天的记录,再按id分组统计总条数,直接返回固定值3作为day字段。
内容的提问来源于stack exchange,提问作者skulldoger
相关产品推荐
相关产品推荐

