簡體   English   中英

SQL Oracle查詢以計算小計

[英]SQL Oracle query to calculate subtotal

我正在尋找在Oracle SQL中進行分類匯總的正確方法。 記錄到此我查詢

select model,  sifra, velicina, sum(nvl(magacin,0)) as suma
from podmornica
where model ='30001'
group by  sifra, velicina, cube (model)
order by model, sifra, velicina

我的桌子上有列podmornica,其列為:model,sifra,velicina,magacin

但這是行不通的。 列模型中的第二行均為空,最后不計算總和。 如何解決呢? 謝謝

PS在一個模型中,我們有SIFRA的變體,因此我不會為一個模型(在這種情況下,模型為30001)的每個SIFRA小計。 像下面

MODEL  SIFRA     VELICINA  SUMA

30001  3000101      0        1
30001  3000102      0        2
30001  3000103      0        5
______________________________
30001                        8

這似乎是使用group by grouping sets的好時機...

SELECT MODEL,  SIFRA,     VELICINA,  sum(nvl(magacin,0)) as SUMA
FROM podmornica
WHERE model ='30001'
GROUP BY GROUPING SETS ((MODEL, SIFRA, VELICINA), (Model))

按模型,sifra和velicina分組以獲取詳細信息行。 加上這3個領域的magacin ...

按模型分組,以便顯示給定模型的總和。

另外,如果您想添加一列,則可以通過將sum(magacin) over (partition by model) as sumB添加到選擇中,從而顯示模型每一行的總數。 這種方法正在使用分析/窗口功能。

可能很難找到所需的確切內容,但我認為您需要對所有列進行多維數據集處理:

select model, rgrupa, sifra, velicina, sum(nvl(magacin,0)) as suma
from podmornica
where model ='30001'
group by cube(model, rgrupa, sifra, velicina)
order by model,rgrupa, sifra, velicina

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM