select a,b,sum(qty) qty from table group by b,a现在我想把 group by b,a中的“a”去掉,但我必须保留select a,b,sum(qty)中的“a”,怎么写这个sql?tks!

解决方案 »

  1.   

    逻辑上不对,不过应该可以用
    select max(a),b,sum(qty) from table group by b;
    有所悖离你的意愿
      

  2.   


    如果想要“a”,你就必须在Group by带上a ,不然违反了group by的语法。
    如果b的值是唯一的话,你可以使用一楼的那个语句,另外也可以这样:select b,qty from 
                    (select a,b,sum(qty) qty 
                     from table group by b,a)
      

  3.   

    去掉“A”之后,你的select a,b,sum(qty) qty 中的A打算显示什么值呢?select max(a),b,sum(qty) from table group by b;
      

  4.   


    select max(a),b,sum(qty) from table group by b;
    --这个操作将不会得到LZ想要的结果,因为会过滤掉一些结果
      

  5.   

    如果a b是一一对应的话,那么可以使用 select max(a),b,sum(qty) from table group by b;
    如果 a b 不是一一对应的话,只能使用子查询模式
    select b,qty from table, 
      (select b,sum(qty) qty  
      from table group by b)  tbl1
    where table.b= tbl1.b