我有一个返回一些记录的简单查询:
select reference as ref, amount as amt
from my.table
where foo_ref like 'B%'
and foo_amount != 0.000
fetch first 12 rows only
我还想做的是对这12个返回的行的amt列进行SUM。我是SQL的新手,所以我不确定这是怎么做的。任何帮助表示赞赏。
答案 0 :(得分:0)
select reference as ref, SUM(amount) as amt
from my.table
where foo_ref like 'B%'
and foo_amount != 0.000
group by reference
fetch first 12 rows only
SUM()以amount的形式添加值。我添加了一个组作为参考。结果将是一个表,该表是一组具有金额总和的引用。
每次使用SUM(),COUNT(),MAX(),MIN()等等时,您还必须向不使用这些函数的字段添加分组。
答案 1 :(得分:0)
DB2的版本和发行版是什么?当前版本中有一些强大的OLAP功能..
with tbl as (
select reference as ref, amount as amt
from my.table
where foo_ref like 'B%'
and foo_amount != 0.000
order by ref
fetch first 12 rows only )
select tbl.*, sum(amt) as tot_amt
from tbl
group by rollup ((ref,amt))
这将返回13行,其中第13行包含NULL为ref和amt,而具有tot_amt中12行的总数。