#presto
Вопрос:
Я выполняю запрос для классификации цены по 4 квартилям. Я не экспрессирован в Престо, поэтому мне интересно, почему это происходит:
В чем проблема:
- Когда все кварти имеют одинаковое значение(потому что существует только одна цена), иногда продавец классифицируется как 1-й квартал, а другой продавец (та же цена) классифицируется как 2-й квартал
2.Иногда значение меньше расчетного квартиля, но цена классифицируется как этот квартиль. пример: цена 51,09 классифицирована как 4-й квартал, а рассчитанный 4-й квартал равен 53
with cte as ( select
purchase_date, created_at, odin , seller_id, gmv
from table
where date(purchase_date) >= (cast(current_date as date) - interval '12' day)
group by purchase_date,created_at, odin, seller_id, gmv),
quartiles as (select
odin,
approx_percentile(gmv, 0.25) AS "1_quartile",
approx_percentile(gmv, 0.5) AS "2_quartile",
approx_percentile(gmv, 0.75) AS "3_quartile",
approx_percentile(gmv, 1) AS "4_quartile"
from cte
group by odin
)
select cte.purchase_date, cte.created_at, cte.seller_id, cte.gmv,
ntile(4) over (partition by cte.odin order by gmv asc) quartile, quartiles.*
from cte
inner join quartiles on cte.odin = quartiles.odin