Clickhouse - 累计总和或运行总计和百分比总计

时间:2017-11-08 05:21:26

标签: sql clickhouse

Clickhouse非常鼓励我们。但是,当我们尝试将所有现有脚本移植到Clickhouse时,我们遇到了很少的障碍。 例如: CUMULATIVE SUM or RUNNING TOTAL。我们试图找到一个等效的窗口函数,例如SUM(SALES) OVER (PARTITION BY PRODUCT ORDER BY SALES)

  • 有没有办法获得累计总和或累计。非常感谢任何投入或指导。谢谢!

  • 这是关于Clickhouse的第二个问题(同样是一个很棒的数据库)。我们必须移植我们的脚本来计算"Percent to total"

    例如

    Product | Sales
    
    P1  100 
    
    P2  200
    
    P3  150
    
    P4  50
    

    我们正在寻找可以填充

    的脚本
    Product, Sales, PercenttoTotal
    
    P1, 100, 20%
    
    P2, 200, 40%
    
    P3, 150, 30%
    
    P4, 50,  10%
    

    通过Clickhouse中的各种功能可以快速实现这一目标。提前谢谢。

  • 1 个答案:

    答案 0 :(得分:4)

    百分比

    SELECT 
       productid,
       count() as per_product_count,
       per_product_count * 100 / ( SELECT count() from prod_sales ) as percent_to_total
    FROM prod_sales
    GROUP BY productid
    

    累计金额或总计

    最新版本(v1.1.54310-stable)添加对函数runningIncome(尚未记录)的支持,该函数应该与runningDifference一样,但应该计算sum而不是差值。

    在github上查看我对这个问题的回答: