码迷,mamicode.com
首页 > 数据库 > 详细

sqlzoo.net刷题2

时间:2016-08-27 19:22:21      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:

Find the largest country (by area) in each continent, show the continent, thename and the area:

找到每个洲面积最大的国家:

SELECT continent, name, area FROM world x
  WHERE area >= ALL
    (SELECT area FROM world y
        WHERE y.continent=x.continent
          AND area>0)

其实这种>=ALL(子查询) 最不好理解,因为SQL不是一门过程化语言,所以用起来其实是比较蛋疼的

(多读几遍就能差不多能分析个大概出来,但是自己写又一下子想不出来)

最好的理解是 对于全表world 先遍历,然后对每行的area还有continent 做一次子查询,

针对同一个continent 检索所有area行,让 父查询>=子查询,这样就能找到每个洲面积最大的国家了

sqlzoo.net刷题2

标签:

原文地址:http://www.cnblogs.com/winters1992/p/5813472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!