按编号中断SQL结果

时间:2012-09-17 21:25:43

标签: sql oracle oracle11g

如何根据数量将以下列表转换为多行,但按项目分组?

目前的结果。

ITEM     QTY
-----    ----
12345     1
12346     2
12347     3

这是理想的结果

ITEM     QTY
-----    ----
12345     1
12346     1
12346     1
12347     1
12347     1
12347     1

这是查询

SELECT a.item,sum(b.qty) as qty

FROM table1 a, table2 b 
WHERE a.item_id = b.item_id 
group by a.item
order by a.item_id

1 个答案:

答案 0 :(得分:1)

您可以通过将rownum应用于记录来执行此操作:

select t1.item, qty / qty as qty
from yourtable t1
left join
(
  select rownum rn, item
  from yourtable
) t2
  on t1.qty >= t2.rn
order by t1.item

请参阅SQL Fiddle with Demo