如何通过Oracle模型子句实现数据的动态聚合

   2024-09-30 8210
核心提示:在Oracle数据库中,可以使用MODEL子句实现数据的动态聚合WITH sales_data AS (SELECT product_id, order_date, amount_sold

在Oracle数据库中,可以使用MODEL子句实现数据的动态聚合

WITH sales_data AS (  SELECT     product_id,     order_date,     amount_sold   FROM     sales)SELECT   product_id,   order_date,   SUM(amount_sold) OVER (PARTITION BY product_id ORDER BY order_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as running_totalFROM   sales_dataORDER BY   product_id,   order_date;

在这个示例中,我们首先创建了一个名为sales_data的临时表,包含product_idorder_dateamount_sold字段。然后,我们使用SUM()函数和OVER()子句计算每个产品在给定日期之前(包括当天)的累计销售额。PARTITION BY子句将数据按产品ID分组,而ORDER BY子句则按订单日期对每个分组进行排序。ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW表示窗口范围从当前行的第一行开始,直到当前行。

最后,我们按product_idorder_date对结果进行排序。这样,我们就可以看到每个产品在不同日期的累计销售额。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号