[英]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.