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

如何编写SQL按月份统计唯一contact_id的数量并生成结果表?

解决方案

适配主流数据库的查询语句

核心逻辑是按月份聚合数据并对联系人ID去重统计,以下是不同数据库的实现代码:

MySQL/MariaDB 版本

SELECT
    DATE_FORMAT(timestamp, '%Y-%m') AS Month,
    COUNT(DISTINCT contact_id) AS contactCount
FROM
    your_table_name  -- 替换成你的实际表名
GROUP BY
    DATE_FORMAT(timestamp, '%Y-%m')
ORDER BY
    Month DESC;

PostgreSQL 版本

SELECT
    TO_CHAR(timestamp, 'YYYY-MM') AS Month,
    COUNT(DISTINCT contact_id) AS contactCount
FROM
    your_table_name  -- 替换成你的实际表名
GROUP BY
    TO_CHAR(timestamp, 'YYYY-MM')
ORDER BY
    Month DESC;

关键逻辑说明

  • 日期格式化:通过DATE_FORMAT(MySQL)或TO_CHAR(PostgreSQL)将timestamp字段转换为YYYY-MM格式的月份字符串,对应结果表的Month列
  • 去重统计:COUNT(DISTINCT contact_id)避免同一联系人ID在当月多次出现被重复计数,确保统计的是当月唯一联系人数量
  • 分组排序:GROUP BY按格式化后的月份分组,保证每个月份仅返回一条统计结果;ORDER BY Month DESC让结果按时间从新到旧排列,若需从旧到新可改为ASC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:05:24