You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于SQL代码是否按月份提取去重用户的技术问询

你的SQL完全符合需求!

嘿,我来帮你拆解这段代码,确认它的行为完全匹配你想要的逻辑:

  • 按月份分组:EXTRACT(MONTH FROM created_at) 会从登录时间里提取出月份数字,再通过 GROUP BY 把所有数据按月份拆分成独立的分组,每个分组对应一个月的登录记录。
  • 同月份内user_id去重统计:COUNT(DISTINCT user_id) 会在每个月份分组里,只统计不重复的用户ID——也就是说,同一个用户在某个月内登录1次或者100次,都只会被算作1个有效用户。
  • 不同月份允许重复统计:因为每个月份是独立的分组,同一个用户如果在1月和2月都有登录,会分别在1月和2月的统计结果里各占一个名额,完全满足你“不同月份可多次出现”的要求。

小提醒

如果你的数据跨了多个年度(比如包含2017年1月和2018年1月),这段代码会把这两个1月的用户数据合并统计,因为EXTRACT(MONTH)只提取月份数字,不包含年份。如果需要区分同月份不同年份的情况,可以修改分组逻辑,比如:

SELECT 
  COUNT(DISTINCT user_id),
  EXTRACT(YEAR FROM created_at) AS YR,
  EXTRACT(MONTH FROM created_at) AS MTH
FROM user_logins 
WHERE created_at >= '2017-01-01' AND created_at <= '2018-04-10' 
GROUP BY EXTRACT(YEAR FROM created_at), EXTRACT(MONTH FROM created_at) 
ORDER BY YR ASC, MTH ASC

内容的提问来源于stack exchange,提问作者delalma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:33:50