日期:2014-05-19  浏览次数:20461 次

问一个查询问题
有这么两个表:
A:   classid       classname
        1                       衣服
        2                       裤子
        5                       帽子
        10                       鞋子
B:spid     spname     parentid     clicknum
        1         男士衣服           1                 90       --衣服类别中点击率最高
        2         女士衣服           1                 80
        3         男士裤子           2                 70
        4         女士裤子           2                 90       --裤子类别中点击率最高
        5         男士帽子           5                 15
        6         女士帽子           5                 30
        7         男士鞋子           10               65       --鞋子中点击率最高
        8         女士鞋子           10               54

要求分别把衣服裤子帽子鞋子点击率最高的纪录找出来,再降序排列,结果应该是
  spid       spname       clicknum
      1           男士衣服         90
      4           女士裤子           90
      7             男士鞋子         65
      6             女士帽子         30

------解决方案--------------------
select spid,spname,clicknum from B,(select spname,max(clicknum) as clicknum from B group by spname) B2 where B.spname=B2.spname and B.clicknum=B2.clicknum order by b.clicknum desc;