我正在使用谷歌搜索找到在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与列:模型,sifra,velicina,magacin
但它不起作用。列模型中的每隔一行为空,最后不计算总和。怎么解决这个? 感谢
P.S。在一个模型中,我们有SIFRA的变体,我不希望每个SIFRA的一个模型的小计(在这种情况下模型是30001)。如下所示
MODEL SIFRA VELICINA SUMA
30001 3000101 0 1
30001 3000102 0 2
30001 3000103 0 5
______________________________
30001 8
答案 0 :(得分:1)
这似乎是使用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分组以获取细节行。与magacin总结这三个领域...
按型号分组,以便显示给定模型的总和。
或者,如果您想添加列,则可以通过向select中添加sum(magacin) over (partition by model) as sumB
来显示模型的每一行的总计。这种方法使用分析/窗口函数。
答案 1 :(得分:0)
可能很难找到您想要的确切内容,但我认为您需要对所有列进行多维数据集:
{{1}}