gpt4 book ai didi

sql - COUNT 查询的意外结果

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:15 24 4
gpt4 key购买 nike

我在从一张表中获取计数时遇到了一个奇怪的问题。表名为 Client,并且有一个名为 CardNovarchar(200) 列。数据库引擎是Intersystems Cache,查询语法是SQL。

我执行下面的查询以获取拥有/不拥有 CardNo 的客户数量。但是得到如下意想不到的结果。

select count(*) from Client
where CardNo is null
--Result: 38000

select count(*) from Client
where CardNo is not null
--Result: 78000

select count(*) from Client
--Result: 265000

无CardNo的客户数为38000。CardNo 的客户数量为 78000。表中所有客户端的数量为 265000,不等于 78000 + 38000。怎么会这样?根据文档,我的查询风格应该没有问题 http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_null

最佳答案

请确保您的索引是最新的。有时人们更改表定义而忘记构建索引,因此您最终只会为更改索引定义后插入的新数据创建索引。

即使您没有为 CardNo 字段编制索引,您也需要拥有最新的索引,因为 SQL 引擎可以选择遍历全局索引而不是全局范围(“主”)。

您可以从管理门户或终端重建索引:

do ##class(your.class.name).%BuildIndices()

关于sql - COUNT 查询的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39968127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com