ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » 移动及嵌入式数据库 » 有些国家人口数比她的周边国家要多三倍,列出这些国家和地区.不解,请教?

标题: 有些国家人口数比她的周边国家要多三倍,列出这些国家和地区.不解,请教?
离线 hulei0058
老会员



精华贴数 0
个人空间 0
技术积分 2914 (529)
社区积分 0 (1046075)
注册日期 2006-7-26
论坛徽章:2
ITPUB新首页上线纪念徽章开发板块每日发贴之星    
      

发表于 2007-12-13 12:38 
有些国家人口数比她的周边国家要多三倍,列出这些国家和地区.不解,请教?

题目:bbc(name,   region,   area,   population,   gdp)

3c.   有些国家的人口数比她的周边国家(周边国家指在同一地区的国家)要多三倍,列出这些国家和地区.   

题目链接:http://www.sqlzoo.cn/1a.htm地址
标准答案是:select   name,region   
from   bbc   a   where   population   >   all   (select   population*3   from   bbc   b   where   a.region=b.region   and   a.name <> b.name)

可我看不太懂了,我写的语句是
SELECT   name,region   FROM   bbc   b1   WHERE   b1.population   >   (SELECT   3*MAX(b2.population)   FROM   bbc   b2   WHERE   b1.region   =   b2.region   AND   b1.name   <>   b2.name   group   by   region)
最终这两种结果是一样.
标准答案没把   group   by   region加上去,,是我画蛇添足了吗?

不解,如果没有   group   by   region那么select   population*3   from   bbc   b   where   a.region=b.region   and   a.name <> b.name得到的结果是要的吗?
请大家教教我了.谢谢.


只看该作者    顶部
离线 ppstone
资深会员



精华贴数 0
个人空间 0
技术积分 3810 (376)
社区积分 0 (1046057)
注册日期 2006-7-25
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2007-12-13 12:41 
1.   group   by   region不需用   因为你用了b1.region   =   b2.region   这个表示同一个地区.
2.   我认为3*MAX(b2.population)   更加合理.


只看该作者    顶部
离线 ninetailsfox
老会员



精华贴数 0
个人空间 0
技术积分 2440 (644)
社区积分 0 (1542071)
注册日期 2007-9-5
论坛徽章:2
数据库板块每日发贴之星ITPUB新首页上线纪念徽章    
      

发表于 2007-12-13 12:42 
呵呵,当然不需要   GROUP   ,GROUP   一般是在使用到   聚合函数的时候才用到.


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问