我有一个创业公司的数据库,每个创业公司都有一个 total_funding 字段。我需要能够在 total_funding 范围内搜索启动,例如,我正在运行这些查询
SELECT COUNT(*) AS total
FROM organization
WHERE 1
AND (organization.total_funding_usd BETWEEN 0 AND 1000000)
total : 931728
SELECT COUNT(*) AS total
FROM organization
WHERE 1
AND (organization.total_funding_usd BETWEEN 1000000 AND 5000000)
total : 32415
SELECT COUNT(*) AS total
FROM organization
WHERE 1
AND (organization.total_funding_usd BETWEEN 0 AND 5000000)
total : 957721
问题是,如果我将前两个查询的结果相加,我得到 931728 + 32415 = 964 143 这不等于等于 961 974 的第三个查询的结果
有谁知道为什么我错过了 2169 家初创公司?
答案 0 :(得分:2)
之间包括终点。我怀疑你想要:
WHERE organization.total_funding_usd >= 0 AND
organization.total_funding_usd < 1000000
WHERE organization.total_funding_usd >= 1000000 AND
organization.total_funding_usd < 5000000
WHERE organization.total_funding_usd >= 0 AND
organization.total_funding_usd < 5000000
换句话说,总资金为 1000000 的组织被计算两次。