表结构及数据如下:ID   字段1    数量    字段2    数量
1    商品1     40     商品2     30
2    商品3     22     商品1     44
3    商品2     55     商品1     22
..  ......    ....   .......   ....我想求出每个商品的数量及每个商品出现的次数。并按数量的多少进行排序

解决方案 »

  1.   

    select 商品 ,sum(数量) as 数量,count(1) as 次数 from
    (
    select id,字段1 as 商品, 数量 from tb union all
    select id,字段2, 数量 from tb
    ) t
    group by 商品
    order by sum(数量) desc
      

  2.   

    主要思想是将各个商品字段的数据分开后在进行排序,如果直接排可能很麻烦。
    select 商品 ,sum(数量) as 数量,count(1) as 次数 from
    (
    select id,字段1 as 商品, 数量 from tb union all
    select id,字段2, 数量 from tb
    ) t
    group by 商品
    order by sum(数量) desc
    --代码引用1楼大哥的。嘿嘿。