【问题标题】:Subqueries and multi tables子查询和多表
【发布时间】:2021-07-25 04:37:37
【问题描述】:

我有一个关于我遇到的问题的基本问题:

假设我有这些表格的模型:

Food(Quantity, Animal_id)
Race(Race_code, Race_name)
Animal(Animal_id, Race_code)

我被要求通过选择查询找到每个种族吃掉的总数量。

(当然是使用SUM函数。显示也需要Race_name

但我不知道将这些表格的属性从数量链接到比赛名称(我只知道我的推理会像这样Quanity->animal_id->race_code->race_name)。有什么帮助吗?

【问题讨论】:

  • 请以文本表格的形式提供示例数据和所需结果。不过,您的问题表明答案是简单的 join 聚合。

标签: sql oracle oracle11g


【解决方案1】:

使用子查询:

select race_name ,(select sum(quantity) from food where animal_id in (select animal_id from animal a where r.race_code = a.race_code))
from race r

【讨论】:

    【解决方案2】:

    看起来像一个连接,不是吗?未聚合的列(在这种情况下为race_name)必须放入group by 子句中。

    select r.race_name,
          sum(f.quantity) sum_quantity
    from race r join animal a on a.race_code = r.race_code
                join food f on f.animal_id = a.animal_id
    group by r.race_name;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多