【问题标题】:Date aggregation on PrestoPresto 上的日期聚合
【发布时间】: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) 中使用它;)。

标签: sql date presto


【解决方案1】:

select product,date,count(sale) from logs where vendor='abc' and product = 'biscuit' group by product,date order by count(sale) desc;

此查询将为您提供所有详细信息,顶部为最大销售额。

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 2021-09-10
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2014-12-18
    相关资源
    最近更新 更多