有个select语句,我需要取出10个字段和1个sum,在使用group by的时候,比如编号,名称都可以做分组,而且也必须做分组。因为sum的就是这些不同的产品。
但是其它字段比如:入库日期,是否为零,对应的出货人我认为不能做分组。但是不在group by后面加上这些字段,就会报错?

解决方案 »

  1.   

    入库日期可以根据需要做max()或者min(),是否为0这个可以的吧?出货人也可以分组吧
      

  2.   

    select 列中只要存在聚合函数,所有非聚合列必须出现在group by 子句中。
    你这个可以先对部分聚合,然后再做连接吧
      

  3.   

    select 字段,sum(字段) over (partition by 编号) from 表     --分析函数
      

  4.   

    可以先分组再连接select   TB.*,N.num1   from   TB   inner   join   (select   a,b,sum(num)as   num1     from   TB   group   by   a,b   )   as   N   On   N.a=TB.a   order   by   N.a