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

SQL查询问题:统计指定日期区间内fid的有效行数

解决方法:统计指定日期区间内存在fid的行数

你的SQL语句目前存在两个关键问题,才导致返回了日期区间内的总行数,而非你需要的带有效fid的行数:

  1. 语法逻辑错误:你写的not in ('')没有关联到fid字段,位置也不对,数据库无法识别你要筛选的是fid非空的行,最终只执行了日期范围的筛选条件。
  2. 空值判断不准确:如果fid不存在的行是指fid为NULL,那么not in ('')无法正确排除这类行——因为NULL和任何值比较的结果都是未知,不会被筛选掉。

正确的SQL查询语句

要同时满足「日期在指定区间内」和「fid存在(不为NULL)」两个条件,正确写法如下:

SELECT COUNT(*) AS fid_count 
FROM users 
WHERE created_on BETWEEN '2017-01-06 00:00:00' AND '2017-01-06 23:59:59.997'
  AND fid IS NOT NULL;

补充情况处理

如果你的fid字段除了NULL之外,还可能存在空字符串''的无效值,需要同时排除这两种情况,可以修改为:

SELECT COUNT(*) AS fid_count 
FROM users 
WHERE created_on BETWEEN '2017-01-06 00:00:00' AND '2017-01-06 23:59:59.997'
  AND fid IS NOT NULL 
  AND fid <> '';

这样就能准确统计出指定日期区间内,存在有效fid值的行数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:24:25