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

在Grafana中用PostgreSQL查询统计NIF字段空值与非空值

问题分析与解决方案

原查询的核心问题在于分组依据错误:你按原始nif字段分组,导致每个不同的非空NIF值都会被单独统计,而非将所有非空NIF归为一类。另外,原查询未处理nif为NULL的情况(字段允许为空,除了空字符串'',还有可能是NULL)。

修正后的查询语句

SELECT
  0 as time,
  CASE
    WHEN nif IS NULL OR nif = '' THEN 'Sin identificar'
    ELSE 'Identificados'
  END as classification,
  COUNT(*) as total_count
FROM conversations
WHERE $__timeFilter("fecha")
GROUP BY time, classification
ORDER BY total_count DESC

关键修正点

  • 分组逻辑调整:将GROUP BY的字段改为CASE语句生成的classification,这样所有空值(NULL或空字符串)会被归为一组,所有非空NIF会被归为另一组,实现整体计数。
  • 完善空值判断:补充nif IS NULL的判断,覆盖字段允许为空的两种情况(NULL和空字符串)。
  • 计数方式优化:用COUNT(*)统计每组的总记录数,避免COUNT(nif)忽略NULL值的问题(虽然这里分组已经处理了NULL,但COUNT(*)更直观)。

效果说明

执行修正后的查询后,会返回两条记录:

  • Sin identificar:所有NIF为NULL或空字符串的对话数量
  • Identificados:所有NIF非空且不为空字符串的对话数量

这样就能在Grafana中正确展示两类数据的统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:50:27