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

如何用单条SQL查询统计同一列出现1次和多次的ID数量

单条SQL实现方案

核心逻辑是先分组统计每个ID的出现频次,再基于频次做条件聚合统计,仅需一次全表扫描,性能远高于两次独立的HAVING查询。

通用SQL语句(兼容所有主流数据库)

SELECT
  SUM(CASE WHEN id_count = 1 THEN 1 ELSE 0 END) AS Occurrences_Once,
  SUM(CASE WHEN id_count > 1 THEN 1 ELSE 0 END) AS Occurrences_greater_than_one
FROM (
  SELECT ID, COUNT(*) AS id_count
  -- 替换为你的实际表名
  FROM your_table_name
  GROUP BY ID
) AS t;

逻辑说明

  1. 内层子查询先按ID分组,计算每个ID的出现次数,仅扫描一次原表
  2. 外层通过CASE条件判断每个ID的频次类型,累加得到两类ID的总数量

示例数据验证

针对你给出的测试数据,运行上述SQL得到的结果完全符合预期:

Occurrences_OnceOccurrences_greater_than_one
12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:42:07