Как использовать диапазон дат в Presto - PullRequest
0 голосов
/ 24 марта 2020

Я должен выбрать 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?

1 Ответ

0 голосов
/ 24 марта 2020

Если 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'
...