【发布时间】:2017-01-18 06:52:05
【问题描述】:
我有一张表格,其中列出了每天销售的产品列表,我想知道销售达到 95% 的日期是什么时候(对于给定的产品)。我不看平均值,因为有些日子销售额很高(并且可能会扭曲数字)
这是我试图在 presto 上运行的查询
select approx_percentile(count(date), .95)
from logs
where vendor='abc'
and product='biscuit'
and date >= date_parse(date_format(now() - interval '30' day, '%Y-%m-%d'), '%Y-%m-%d');
但 presto 似乎不喜欢它并抛出以下错误消息
查询失败:函数 approx_percentile 的意外参数(日期、双精度)。预期: approx_percentile(bigint, double) , approx_percentile(bigint, bigint, double) , approx_percentile(double, double) , approx_percentile(double, bigint, double)
PS : 日期属于“日期”类型
【问题讨论】:
-
每笔销售都有一个包含日期的时间戳,所以这是我获取统计数据的最佳选择。
-
您能否提供您的列名以便为您提供查询
-
嗨@JimMacaulay,每次销售都会有日期、供应商、商品和价格。所以日期是每笔交易的共同点。
-
我认为您需要在嵌套查询中分隔计数日期,然后在
approx_percentile(cnt, .95)中使用它;)。