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

MariaDB中GROUP BY统计KYC类型时如何让缺失类型返回计数0

MariaDB全量KYC类型统计实现方案

核心思路是先构造包含所有5种KYC类型的临时结果集,再左关联业务表统计数据,即可实现无数据的类型返回0的效果。

具体实现SQL

SELECT 
    t.kyc_type,
    COUNT(k.kyc_type) AS count
FROM (
    -- 构造固定的全量KYC类型临时列表
    SELECT 'self' AS kyc_type
    UNION ALL SELECT 'shg'
    UNION ALL SELECT 'mfg'
    UNION ALL SELECT 'jlg'
    UNION ALL SELECT 'or'
) t
LEFT JOIN kyc_table k 
    ON t.kyc_type = k.kyc_type 
    AND YEAR(k.created_at) = 2020
GROUP BY t.kyc_type;

注意事项

  • 时间筛选条件必须写在LEFT JOIN的ON子句中,不能写在WHERE子句里:如果写在WHERE中,左关联生成的无数据类型行的created_at为NULL,会被YEAR(created_at)=2020过滤,最终还是只会返回有数据的类型
  • 统计计数使用COUNT(k.kyc_type)而非COUNT(*):COUNT(*)会统计所有行(包括关联为空的行),COUNT(指定字段)只会统计该字段非空的行,无关联的行k.kyc_type为NULL,统计结果就是0,符合需求
  • 如果5种KYC类型已经存储在独立的字典表中,可直接替换上述SQL中UNION ALL构造的临时表为字典表查询,写法更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:24:04