道歉,如果这已经得到回答,我已经足够新,以至于我甚至不知道如何搜索:
我有一张桌子:
批次SKU成本日期
1001-1 1001 .30 10-12-14
1001-2 1001 .33 10-19-14
1001-3 1001 .32 11-20-14
1002-1 1002 .45 10-12-14
1002-2 1002 .45 10-19-14
1002-3 1002 .44 12-01-14
1003-1 1003 .12 10-15-14
1003-2 1003 .13 10-19-14
1003-3 1003 .10 11-23-14
我需要总算每个SKU最旧行的成本。
预期结果:(。30 + .45 + .12)= .87
这可以通过一个查询吗?
答案 0 :(得分:1)
ANSI SQL支持名为row_number()
的函数,这对此类查询非常有用。以下是在这种情况下如何使用它:
select sum(cost)
from (select t.*, row_number() over (partition by sku order by date) as seqnum
from table t
) t
where seqnum = 1;
答案 1 :(得分:0)
这应该有效:
select sum(t.cost)
from some_table t
join ( select sku ,
min(some_datetime_column) oldest
from some_table
and some_datetime_column is not null
group by sku
) s on s.sku = t.sku
and s.oldest = t.some_datetime_column