Как использовать диапазон дат в presto

Мне нужно выбирать DS (datetimestamp) из года в год.

Пример:

SELECT  
id_product, 
code,
substr(ds_date, 1,10) as date,
product_type,
from Table A
where 1=1
AND ds <='2019-12-31'
AND (ds_date BETWEEN '2017-01-01' AND '2019-12-31')
groupby 1,2,3,4

Это правильный способ объявить диапазон DS в presto?


person Ashish Raj    schedule 24.03.2020    source источник


Ответы (1)


Если ds_date является varchar формы yyyy-MM-dd..., то это можно прочитать:

substr(ds_date, 1, 4) BETWEEN '2017' AND '2019' -- inclusive: 2017, 2018, 2019

Однако это предотвращает выталкивание предиката ds_date в источник данных, поэтому это может быть более эффективным:

ds_date >= '2017' AND ds_date < '2020'
person Piotr Findeisen    schedule 24.03.2020