Sql数据库选择命令

时间:2013-09-01 18:52:45

标签: sql database select inner-join

我是数据库新手。而我们的老师给了我们非常艰难的任务。有两张桌子。第一个表的昵称是(超级英雄:)的能力)和第二个表名超级英雄。

我们必须为那些有两种能力的人选择超级英雄的昵称及其平均(内侧)范围?

两张桌子的图片:

http://postimg.org/image/85pqbc47n/

原文:http://postimg.org/image/85pqbc47n/

2 个答案:

答案 0 :(得分:2)

我不会给你解决方案 - 毕竟,它是功课,你必须学习一些东西:)但我可以给你一个建议 - 尝试一次做一个任务

  • 首先,找到那些只有2个能力的超级英雄(实际上,你可以通过只查询能力表来做到这一点)
  • 第二 - 尝试找到所有超级英雄的平均能力范围(这里你需要加入)
  • 合并您的查询

查看joingroup bycounthaving

如果你不能在第一次尝试时写下来感觉不好,你的查询并不容易,但是你确定你可以这样做。

答案 1 :(得分:0)

您可以使用HAVINGAVG()

SELECT s.NickName, AVG(a.Range)
FROM abilities a
JOIN superhero s
 ON a.ID_SuperHero = s.ID_SuperHero
GROUP BY s.NickName
HAVING COUNT(DISTINCT a.Abilities > 1)