SQL以有序方式组合2个结果集

时间:2013-03-20 20:10:11

标签: sql

有没有办法将2个查询订购到单个结果集中?

更具体地说,如果我有2个查询:

select 'line',product, numeric_value from numbertable order by product;

select 'Total',product, sum(numeric_value) from numbertable group by product;

有没有办法合并两个查询,以便结果集如下所示:

    Type      Product      numeric_value

    line      item1        23
    line      item1        57
    line      item1        23
    Total     item1        103
    line      item5        20
    line      item5        50
    line      item5        60
    Total     item5        130
    ...

基本上,我希望列出产品的所有商品记录,然后显示它们的总和,然后列出下一个产品的所有商品记录等。

有办法做到这一点,还是一项不可能完成的任务? 谢谢:))

1 个答案:

答案 0 :(得分:2)

在许多数据库中,您可以使用rollup执行此操作。但是,既然你已经走到了这一步:

select *
from ((select 'line' as which, product, numeric_value from numbertable
      ) union all
      (select 'Total', product, sum(numeric_value) from numbertable group by product
      )
     ) t
order by Product, which

order by Product, which将所有产品线汇集在一起​​。 “总计”是最后一次由于订购。