#sql #query-optimization #partitioning #presto
Вопрос:
У меня есть таблица, в которой также есть несколько зашифрованных столбцов. Таблица разделена на столбцы года, месяца и дня. Чтобы прочитать данные за последние 31 день, я использую приведенный ниже фрагмент.
concat(cast(year as varchar),'-',
case when length(cast(month as varchar)) > 1 then cast(month as varchar)
else concat('0',cast(month as varchar)) end,'-',
case when length(cast(day as varchar)) > 1 then cast(day as varchar)
else concat('0',cast(day as varchar)) end)
between (to_date(cast('${day_0}' as date) - interval '31' day)) and '${day_0}'
Это предложение работает нормально, пока я не выберу один из зашифрованных столбцов. При выборе любого зашифрованного столбца анализ объяснения показывает, что фактически нет раздела, и все данные считываются.
Мне нужна помощь в понимании этого момента. В чем проблема, возникающая при выборе зашифрованных столбцов? Как они изменяют поведение предложения where?