select distinct a,max(sum(c)) from table group by b
a=品名
b=产地
c=产量

解决方案 »

  1.   

    试试
    select * from
    (
      select rownum row_no, a.* from
      (select 品名,产地,sum(销量)as 销量 from table group by 品名,产地 order by 3) a
    )
    where mod(row_no,产地数量) = 1不知道对效率是否有帮助。
      

  2.   

    肯定要嵌套
    先求和再求最大值
    select t.prod,t.addr,max(t.sale) as sale
    from 
    (select prod,addr,sum(sale) as sale from tablename 
    group by prod,addr ) t
    group by t.prod,t.addr不知道语法有没有错误
    基本就该这样才是
      

  3.   

    谢谢 Lastdrop(空杯)
    让我很受启发。我先去试一下。to  greatplain(蓝屏) 
    此方法语法没有错误,但你不觉得这是在找销量最大的品名和产地吗?
    看清我的结果A    a     16
    B    c     24就这两行,而不是A    a     16
    A    b     12
    A    c     8
    B    a     7
    B    b     15
    B    c     24
    你的语句有没有外面一层结果都是一样的。
      

  4.   

    select 品名,产地,max(销量) 销量 from (select 品名,产地,sum(销量) from 表 group by 品名,产地)aa
      

  5.   

    select 品名,产地,max(销量) over(partition by aa.品名 order by aa.销量 desc) 销量 
    from (select 品名,产地,sum(销量) 销量 from 表 group by 品名,产地) aa
      

  6.   

    蓝屏实现的在某个地区的销售量的汇总只需要样就行了。
    select *
    from (select 品名,产地,sum(销量) as 销量 from testtemp 
    group by 品名,产地 )
      

  7.   

    snowy_howe(天下有雪)的选出来以后会出现重复记录。  真不好意思,我对你用的关键字都不熟,所以也没办法修改你的SQL语句去重复的记录。  如果可以不用或者只用一个select语句去除的话, 那效率可能会比楼主的高一点了。
      

  8.   


      不好意思,我也头昏了。刚发的一个错了。 
    应该是:
      
      蓝屏实现的在某个地区的销售量的汇总只需要样就行了。
    select 品名,产地,sum(销量) as 销量 from testtemp 
    group by 品名,产地
      

  9.   

    昨天不是写了么,
    select a.品名, b.产地,a.maxxl from (select 品名,max(销量) as maxxl from table1 group by 品名) a,table1 b where a.品名=b.品名 and a.销量=b.销量先查出该品名最大的产量,然后把产地加进去
      

  10.   

    select 品名,keep(产地 first order by 销量),max(销量) from table1 group by 品名试试吧,应该可以。