0

我正在学习 SQL,但无法弄清楚我在代码中做错了什么。

Select robot, city, country, count(sponsor.sponsor)
    From robot join sponsor on robot.robotid = sponsor.robotid
        Group by robotid
Where country not in ('United States');

我应该找到所有不是来自美国的机器人以及他们有多少赞助商。我已经弄清楚如何从机器人表中仅获取国际机器人以及每个机器人ID在赞助商表中的赞助商总数,但无法弄清楚如何加入它们。如果它有助于两个表的 pk 是 robotID,但不应在查询中返回该值。

4

2 回答 2

1

查询存在多个问题。三个很明显:

  • select与列不兼容group by
  • where子句错位了。
  • robotid模棱两可

有人可能会猜到您打算:

Select r.robot, city, country, count(*)
From robot r join
     sponsor s
     on r.robotid = s.robotid
where country not in ('United States')
group by r.robot, city, country;

这只是一个猜测。它应该可以解决语法问题,但它可能不是您想要的。为什么不?您没有解释您的问题、提供样本数据或期望的结果。

于 2021-04-18T00:39:59.200 回答
-1

看一下这个。

Select robot, city, country, count(sponsor.sponsor)
From robot join sponsor on robot.robotid = sponsor.robotid
Where country not in ('United States')
Group by robotid;
于 2021-04-17T23:22:39.547 回答