Когда я запускаю запрос, используя group by ... with rollup
:
select a, b, sum(c)
from <table>
group by a, b with rollup;
, я получаю повторяющиеся строки в (как я считаю,) в PK запроса (то есть в столбцах группировки):
+------+------+--------+
| a | b | sum(c) |
+------+------+--------+
| NULL | NULL | 13 |
| NULL | 1 | 4 |
| NULL | 3 | 8 |
| NULL | 4 | 9 |
| NULL | NULL | 34 |
| 1 | 3 | 17 |
| 1 | 4 | NULL |
| 1 | 17 | 2 |
| 1 | NULL | 19 |
| 2 | NULL | 6 |
| 2 | 1 | 17 |
| 2 | 3 | 17 |
| 2 | NULL | 40 |
| 4 | 17 | 2 |
| 4 | NULL | 2 |
| 5 | NULL | 11 |
| 5 | 6 | 7 |
| 5 | NULL | 18 |
| 13 | 4 | 2 |
| 13 | NULL | 2 |
| 14 | 41 | 3 |
| 14 | NULL | 3 |
| 18 | 1 | 2 |
| 18 | NULL | 2 |
| 41 | 2 | 17 |
| 41 | NULL | 17 |
... следуют еще строки ...
Как отличить (NULL, NULL, 13)
от (NULL, NULL, 34)
? То есть, как различатьстрока, которая имеет значения NULL из-за базовых данных, и строка, которая имеет значения NULL, поскольку она была добавлена с помощью накопительного пакета?(Обратите внимание, что есть и другие примеры - (2, NULL, 6)
и (2, NULL, 40)
)