Когда пишешь SQL-запрос к широким таблицам (где 50 и больше колонок), часто необходимо вывести только конкретные поля исключив ненужные. В стандартном SQL для этого, как правило, приходится вручную перечислять в SELECT все необходимые колонки (например 48 из 50). Ну, либо копировать их список из DDL и удалять лишнее. А если таблица меняется, запрос приходится переписывать.
В ClickHouse можно исключать ненужные колонки проще.
Чтобы не перечислять десятки полей руками, можно использовать модификатор EXCEPT. Он работает в связке со звездочкой и позволяет вывести все колонки, исключив ненужные.
Обычно мы пишем так:
SELECT
id,
category,
user_id,
-- ... перечисляем остальные колонки руками ...
FROM table
С использованием EXCEPT запрос становится короче:
SELECT * EXCEPT (updated_at)
FROM table
Несколько нюансов:
Исключаемые колонки пишутся в круглых скобках через запятую.
Не путайте модификатор EXCEPT с оператором вычитания множеств.
Модификатор отлично комбинируется с другими модификаторами, например с REPLACE или APPLY (напишу про них в следующих постах).
P.S. Систематизировать знания и получить крепкую базу можно на моем бесплатном курсе «ClickHouse с нуля». А закрепить пройденный материал на его практическом продолжении «ClickHouse с нуля: практика».