共一个表 TABLE1 ,用到的字段共4个。
 month1(月份) code(公司) product(产品) NUM(产品的数量)  
   01      BJO    GSM            1               
   01      BJO    CDMA            1               
   01      BJO    GSM            1               
   03      SHO    GSM            0               
   03      SHO    CDMA            1               要求列出形式如下:month1(月份) code(公司) product(产品) NUM(产品的数量)
   01      BJO    GSM            2               
   01      BJO    CDMA            1                
   03      SHO    GSM            0     
   03      SHO    CDMA            1        
请用一个sql写出来,也可以用functions,但是要求速度。 

解决方案 »

  1.   

    这个直接用Group by 应该就可以:select month1,code,product,sum(Num) from tabl1 
    group by month1,code,product;
      

  2.   

    用GROUP BY解决不了你的问题嘛?
      

  3.   

    这么简单的问题是不是数据量很大?数据量很大也应该可以的哇,group by
      

  4.   


    直接用GROUP BY吧, 这个速度不在于SQL, 在于表的设计, 这个完全可以设计成两个表
    表A:
    (
     ID         PRIMARY KEY,
     MONTH1,
     CODE,
     PRODUCT
    )
    其中(MONTH1,CODE,PRODUCT)作UNIQUE KEY表B:
    (
     KEY     PRIMARY KEY,
     NUM,
     A_ID    REFERENCE A(ID)
    )
    这样减少冗余后直接用:
    SELECT A.*, B.NUM
    FROM   A, (SELECT SUM(NUM) NUM, A_ID FROM B GROUP BY A_ID) B
    WHERE  A.ID = B.A_ID
    就可以了
      

  5.   

    select month1,code,product,count(*) num from table1 group by month1,code,product;
      

  6.   

    直接用Group by ,如果速度慢就建一个索引!
      

  7.   

    还以为真的是高级查询。
    也就是GROUP BY语句就能实现的东东。剩下的就是优化问题,比如创建索引、表分析、sort_area_size加大等。
      

  8.   

    select month1, code, product, sum(Num) from table1   
    group by month1, code, product;