Перейти к основному содержанию

Как вычислить долю пустых/нулевых значений в каждом столбце таблицы

Если столбец разреженный (пустой или содержит в основном нули), ClickHouse может хранить его в разреженном формате и автоматически оптимизировать вычисления — при выполнении запросов данным не требуется полная распаковка. Более того, если вы знаете, насколько разрежен столбец, вы можете задать этот порог с помощью настройки ratio_of_defaults_for_sparse_serialization, чтобы оптимизировать сериализацию. Этот полезный запрос может выполняться некоторое время, но он анализирует каждую строку таблицы и определяет долю значений, равных нулю (или значению по умолчанию), в каждом столбце указанной таблицы:
Например, выше мы выполнили этот запрос для таблицы набора данных environmental sensors с именем sensors, которая содержит более 20B строк и 19 столбцов:
Вот ответ:
Судя по приведённым выше результатам:
  • столбец sensor_id совсем не разреженный. Более того, в каждой строке у него ненулевое значение
  • sensor_type разрежен только примерно в 15,9% случаев
  • столбец P0 очень разреженный: 99,9% значений равны нулю
  • столбец pressure довольно разреженный — 83%
  • а в столбце temperature 53,2% значений отсутствуют или равны нулю
Как мы уже говорили, это удобный запрос, чтобы оценить, насколько разрежены столбцы в таблице ClickHouse!
Последнее изменение 10 июня 2026 г.