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

求助:生成含空值的多列SQL频率报表(代码频次全为0)

跨多列数据频率报表SQL修正方案

问题根源

你的SQL代码存在两处逻辑错误,导致FREQ字段全为0:

  • 冗余的select distinct:GROUP BY TEST, PANEL, UNITS, LOINC已经会返回唯一的字段组合,添加distinct完全多余,甚至可能干扰分组逻辑
  • 错误的计数函数:count(distinct TEST, PANEL, UNITS, LOINC)在分组后,每个组内的字段组合是唯一的,部分SQL引擎不支持多列作为count(distinct)的参数,从而返回0;即使支持,结果也只会是1,无法统计真实频次

修正后的SQL代码

select TEST, PANEL, UNITS, LOINC, count(*) as FREQ
from DEV_HEALTHTERM.SOURCE.LAB  
GROUP BY TEST, PANEL, UNITS, LOINC
ORDER BY FREQ DESC;

空值处理说明

主流SQL引擎(如Snowflake、PostgreSQL、MySQL)在GROUP BY时会将字段值为NULL的行归为同一分组,这样就能正常统计包含空值的行的频次,满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:20:23