【发布时间】:2021-10-29 01:50:36
【问题描述】:
我有以下问题
SELECT 0.0, count(*) FROM tbl_a where value >= 0.0
UNION
SELECT 0.1, count(*) FROM tbl_a where value >= 0.1
UNION
SELECT 0.2, count(*) FROM tbl_a where value >= 0.2
UNION
SELECT 0.3, count(*) FROM tbl_a where value >= 0.3
UNION
SELECT 0.4, count(*) FROM tbl_a where value >= 0.4
UNION
SELECT 0.5, count(*) FROM tbl_a where value >= 0.5;
这工作得很好,我得到了我希望的结果,但是维护和扩展很痛苦
我试过这样分组
SELECT
CASE
WHEN value >= 0.5 THEN 0.5
WHEN value >= 0.4 THEN 0.4
WHEN value >= 0.3 THEN 0.3
WHEN value >= 0.2 THEN 0.2
WHEN value >= 0.1 THEN 0.1
WHEN value >= 0.0 THEN 0.0
END as mag,
count(*) as numberOfCases
FROM tbl_a
GROUP BY CASE
WHEN value >= 0.5 THEN 0.5
WHEN value >= 0.4 THEN 0.4
WHEN value >= 0.3 THEN 0.3
WHEN value >= 0.2 THEN 0.2
WHEN value >= 0.1 THEN 0.1
WHEN value >= 0.0 THEN 0.0
END
ORDER BY MAG
但是结果并没有给我0值的组,也没有累积,
例如,当我声明 value >= 0 时,结果应该包括所有大于或等于 0.0 的值,但它不包括仅包含 0.0 的值
【问题讨论】: