【发布时间】:2017-05-17 12:31:56
【问题描述】:
我有一个数据集,其中字段将NULL 作为有效值是很常见的。当我想在 MySQL 中使用 ROLLUP 运算符时,这会导致问题,因为我无法区分它作为小计/总计的一部分生成的 NULL 值和数据中的实际 NULL 值。
我目前的查询如下:
SELECT
COALESCE(car_score, "Total") AS car_score,
COUNT(DISTINCT id) AS volume
FROM cars_table
GROUP BY
car_score ASC WITH ROLLUP;
这为我提供了下表:
cars_score | volume
---------------------------
Total | 500
1 | 100
2 | 200
3 | 300
4 | 400
5 | 500
Total | 2000
当我想要它时:
cars_score | volume
---------------------------
NULL | 500
1 | 100
2 | 200
3 | 300
4 | 400
5 | 500
Total | 2000
这是一个简单的示例,一旦我为ROLLUP 提供了多个维度,它就会变得更加令人沮丧。我不能只将之前的 NULL 值更改为其他值的原因是我还需要能够聚合应用程序其他部分的数据,因此拥有一个合适的 NULL 对我来说很重要。
【问题讨论】: