Интересный хак для упрощения сложных SELECT в Postgres

Если вы пишете сложный SELECT, в котором одно и тоже вычисляется несколько раз, например, для массовой обработки данных пачками, то наверняка вам хотелось завести локальную переменную вот пример: SELECT price * quantity AS total_price, (price * quantity) * 0.15 AS tax, ((price * quantity) + ((price * quantity) * 0.15)) AS grand_total ... Здесь price * quantity вычисляется несколько раз, и tax вычисляется дважды. Но это выглядит еще ок, в реальности это зачастую всякие монструозные свитч-кейсы с NULLIF, COALESCE и прочими ребятами. Но не суть, вам хочется один раз вычислить значение, без дублирования кода. Long story short, это делается так:

https://habr.com/ru/articles/1005138/

#lateral #cross_join

Интересный хак для упрощения сложных SELECT в Postgres

Если вы пишете сложный SELECT, в котором одно и тоже вычисляется несколько раз, например, для массовой обработки данных пачками, то наверняка вам хотелось завести локальную переменную вот пример:...

Хабр