Item BatchNo
A 00001
A 00002
A 00003
B 00007
B 00008
B 00009
B 00010
我有一张上面的表格,我希望结果给我前两个批号。对于每个项目。我顺便使用DB2 as400。
例如:
Item BatchNo
A 00001
A 00002
B 00007
B 00008
答案 0 :(得分:0)
使用Window Function
从每个item
Select item, batchno from (
select item, batchno,row_number()over(partition by item order by batchno) Rn
from yourtable) a
where rn<=2
答案 1 :(得分:0)
以下是ASAIK这些工作的一些变化(介于演出之间没有测试)
直接查询
select item,batchno from yourfile
where row_number()over(partition by item order by item,batchno) <=2
order by item,batchno
COMMON TABLE EXPRESSION QUERY
with cte as (
select item, batchno,row_number() over(partition by item order by item, batchno) rn
from yourtable)
select item,batchno from cte where rn<=2 order by item,batchno