为什么 SQLite3 返回的值比某个值的实际出现次数多 1?

问题描述 投票:0回答:1

我在使用 SQLite3 处理统计问题时遇到了意外的差异。我有一个来自 CSV 文件的数据集,其中包含季节性能源效率比 (SEER)。我的目标是找到大于或等于 21 的值出现的次数。

这是我的 .csv 文件中的数据:

先知
24
40
26
32
13
26
26
28
29
17
25
10
23
22
13
31
31
36
25
27
35
34
17
39
18
21
23
22
26
31
26
25
22
21
34
26
29
24
27
27
24
30
38
31
32
9
26
19
24
29
28
26
19
29
39
26
30
32
28
30
22
25
27
29
24
30
29
20
30
25
26
29
27
25
20
18
15
25
23
27
23
27
24
28
27
40
27
12
30
24
34
33
29
22
40
32
27
35
23
39

我尝试使用 SQLite3 和以下查询来解决这个问题:

sqlite3 heat_data.db
.mode csv
.import ex02-115heat.csv heat
.schema
SELECT COUNT(*) FROM heat WHERE SEER >= 21;

最后一个查询返回 87。为了验证这个结果是否正确(并且由于我对 SQL 非常缺乏经验),我使用了 Excel 的“COUNTIF”函数,期望它也返回 87。令人惊讶的是,Excel 返回了 86。我怀疑其中的差异,手动统计了出现次数,果然发现了 86。

然后我咨询了 ChatGPT,它也确认了计数为 86。

我对这种不一致感到困惑。我的 SQL 查询是否存在任何问题,或者对于这种差异是否有其他解释?

excel sqlite
1个回答
0
投票

在我的脑海中,如果

SEER
列中的数据是带有小数部分的数字,那么它可以解释你的观察结果。 例如,
SEER
21.00001
可能在选择查询中呈现为
21
,但在比较中被视为匹配
SEER > 21

© www.soinside.com 2019 - 2024. All rights reserved.