select 品名 ,产地,max(销量) as maxxl from table1 group by 品名,产地

解决方案 »

  1.   

    select distinct 品名,产地,销量 from table a,(select 品名,max(销量) as 销量 from table group by 品名) b where a.品名=b.品名试一下!!
      

  2.   

    我知道差不多可以这样实现
    select * from table1 a where 销量=(select max(销量) from table1 b where 品名=a.品名)但麻烦的是,我这个table1并不是实在的表,而是查询的结果,要是这样,岂不是要做两遍查询。

    select * from (select ...) a where 销量=(select max(销量) from (select ...) b where 品名=a.品名)?
      

  3.   

    select * from (select 品名 ,产地,max(销量) as maxxl from table1 group by 品名,产地
    )就ok了
      

  4.   

    楼上的好像不对:我的表t1如下:wzbh rkbh rkje rksl
    1 R0001 9 54
    2 R0001 2 33
    3 R0002 21 34
    4 R0002 2 45
    5 R0003 4 66
    6 R0003 5 66
    7 R0001 2 98select rkbh,rkje,max(rksl) as maxx from t1  group by rkbh,rkje
    执行后的结果如下:R0001 2 98
    R0002 2 45
    R0003 4 66
    R0003 5 66
    R0001 9 54
    R0002 21 34没有完成统计。
      

  5.   

    select * from (select 品名 ,产地,max(销量) as maxxl from (select ....... from asdfasfasdf) group by 品名,产地)
    不糊涂啊,其实理解是时间磨出来的,放分
      

  6.   

    改正过的!!
    select * from aa where c in(select max(c) from aa group by a);
      

  7.   

    sorry:
    select a.rkbh,b.rkje,max(a.rksl) as maxx from t1 a,t1 b where a.rkbh=b.rkbh and a.rksl=b.rksl  group by a.rkbh,a.rkje
      

  8.   

    to: mywhsw(bamboo) 
    你的SQL得到的是按品名,产地分组得到的最大销量,针对楼主给出的数据,你的查询结果是
    A    a     10
    A    b     4
    A    c     6
    B    a     2
    B    b     8
    B    c     15因为没有任何两笔记录的品名,产地是相同的!如果楼主想要得到商品销量最好的产地,又不想查询两遍,那么只有对你的子查询动脑筋了,看看能不能在子查询中返回更有用的信息。
      

  9.   

    select * from aa where c in(select max(c) from aa group by a);
    正确
      

  10.   

    还是Lastdrop(空杯) 是高手,一语中的,再帮我想想还有没有别的办法to gaobh() 
    这样肯定不对
      

  11.   

    如果按照你说的表的结构的话,我改正以后的sql肯定是可以的,但是关键是你这个表也是select 出来的,所以如果想得到一个比较好的sql语句,你还需要给出基本表的结构才可以!!
      

  12.   

    select a.*
    from   t1 a,(select 品名,max(销量) from t1 group by 品名) b
    where  a.品名=b.品名
    and    a.销量 =b.销量
      

  13.   

    老牛的是可以,但如果t1是一个select的结果集的话,就要做两下select了