Oracle SQL 使用正确的分区求和

Posted

技术标签:

【中文标题】Oracle SQL 使用正确的分区求和【英文标题】:Oracle SQL using correctly sum over partition 【发布时间】:2017-11-28 02:04:21 【问题描述】:

我想从已经建好的表中获取一些信息:

PIN     BS      DES     SPEND
12300   CRRT    001     $15 
12300   CN      001     $20 
12300   CRRT    002     $10 
12300   TRN     001     $5 
12300   PWR     001     $30 
12300   TRN     002     $5 
145000  PWR     001     $30 
145000  SOL     001     $1 
145000  CN      001     $20 
145000  SOL     002     $2 
145000  PWR     002     $40 

对于 BS 重复的每个案例和 SPEND 值总和,我需要相同的 PIN。

PIN     BS      SPEND
12300   CN      $20 
12300   CRRT    $25 
12300   PWR     $30 
12300   TRN     $10 
145000  CN      $20 
145000  PWR     $70 
145000  SOL     $3

但仍在试图弄清楚如何订购我的查询。

SELECT PIN, BS, 
SUM(SPEND) OVER (PARTITION BY BS ORDER BY DES) AS SUMSPEND, 
FROM DATA_TABLE ORDER BY PIN ASC

有什么帮助吗?

【问题讨论】:

【参考方案1】:

要获得发布的输出,您不需要总和的分析版本,只需这样做

SELECT PIN, BS, SUM(SPEND) AS SUMSPEND
FROM DATA_TABLE 
group by pin, bs
ORDER BY PIN ASC;

【讨论】:

没用,我尝试更改 sum 分析的顺序。

以上是关于Oracle SQL 使用正确的分区求和的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 SQL 中的分区对行求和?

SQL |如何对 3 个项目的分区组求和?

Kibana两个字段求和

在 Oracle SQL 中求和逗号分隔值

Oracle SQL 层次结构求和

oracle 行求和