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

如何在单条数据库查询中按指定条件分别统计对应行数

问题描述

现有一张包含type、value两个字段的数据表,表结构与示例数据如下:

type | value 
num    1
email  @
name   Oli

需要通过单条查询完成多条件行数统计,分别统计三类缺失记录的行数:

  • 不存在num对应记录的行数
  • 不存在email对应记录的行数
  • 不存在name对应记录的行数
实现方法

通过标准SQL的条件聚合能力,就可以用单条查询完成三个维度的行数统计,无需多次查询表数据,所有支持SQL92标准的数据库都可以使用该写法:

SELECT
    SUM(CASE WHEN type <> 'num' THEN 1 ELSE 0 END) AS missing_num_count,
    SUM(CASE WHEN type <> 'email' THEN 1 ELSE 0 END) AS missing_email_count,
    SUM(CASE WHEN type <> 'name' THEN 1 ELSE 0 END) AS missing_name_count
FROM 替换为你的实际表名;

如果你的统计需求是判断整张表中是否存在对应type的记录(不存在记1,存在记0,而非逐行统计),可以使用如下写法:

SELECT
    CASE WHEN COUNT(CASE WHEN type = 'num' THEN 1 END) = 0 THEN 1 ELSE 0 END AS num_not_exists,
    CASE WHEN COUNT(CASE WHEN type = 'email' THEN 1 END) = 0 THEN 1 ELSE 0 END AS email_not_exists,
    CASE WHEN COUNT(CASE WHEN type = 'name' THEN 1 END) = 0 THEN 1 ELSE 0 END AS name_not_exists
FROM 替换为你的实际表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:57:14