SQL架构

表: Boxes

+--------------+------+
| Column Name  | Type |
+--------------+------+
| box_id       | int  |
| chest_id     | int  |
| apple_count  | int  |
| orange_count | int  |
+--------------+------+
box_id 是该表的主键。
chest_id 是 chests 表的外键。
该表包含大箱子 (box) 中包含的苹果和橘子的个数。每个大箱子中可能包含一个小盒子 (chest) ,小盒子中也包含若干苹果和橘子。

表: Chests

+--------------+------+
| Column Name  | Type |
+--------------+------+
| chest_id     | int  |
| apple_count  | int  |
| orange_count | int  |
+--------------+------+
chest_id 是该表的主键。
该表包含小盒子的信息,以及小盒子中包含的苹果和橘子的个数。

编写 SQL 语句,查询每个大箱子中苹果和橘子的个数。如果大箱子中包含小盒子,还应当包含小盒子中苹果和橘子的个数。

以任意顺序返回结果表。

查询结果的格式如下示例所示。

示例 1:

输入:
Boxes 表:
+--------+----------+-------------+--------------+
| box_id | chest_id | apple_count | orange_count |
+--------+----------+-------------+--------------+
| 2      | null     | 6           | 15           |
| 18     | 14       | 4           | 15           |
| 19     | 3        | 8           | 4            |
| 12     | 2        | 19          | 20           |
| 20     | 6        | 12          | 9            |
| 8      | 6        | 9           | 9            |
| 3      | 14       | 16          | 7            |
+--------+----------+-------------+--------------+
Chests 表:
+----------+-------------+--------------+
| chest_id | apple_count | orange_count |
+----------+-------------+--------------+
| 6        | 5           | 6            |
| 14       | 20          | 10           |
| 2        | 8           | 8            |
| 3        | 19          | 4            |
| 16       | 19          | 19           |
+----------+-------------+--------------+
输出:
+-------------+--------------+
| apple_count | orange_count |
+-------------+--------------+
| 151         | 123          |
+-------------+--------------+
解释:
大箱子 2 中有 6 个苹果和 15 个橘子。
大箱子 18 中有 4 + 20 (在小盒子中) = 24 个苹果和 15 + 10 (在小盒子中) = 25 个橘子。
大箱子 19 中有 8 + 19 (在小盒子中) = 27 个苹果和 4 + 4 (在小盒子中) = 8 个橘子。
大箱子 12 中有 19 + 8 (在小盒子中) = 27 个苹果和 20 + 8 (在小盒子中) = 28 个橘子。
大箱子 20 中有 12 + 5 (在小盒子中) = 17 个苹果和 9 + 6 (在小盒子中) = 15 个橘子。
大箱子 8 中有 9 + 5 (在小盒子中) = 14 个苹果和 9 + 6 (在小盒子中) = 15 个橘子。
大箱子 3 中有 16 + 20 (在小盒子中) = 36 个苹果和 7 + 10 (在小盒子中) = 17 个橘子。
苹果的总个数 = 6 + 24 + 27 + 27 + 17 + 14 + 36 = 151
橘子的总个数 = 15 + 25 + 8 + 28 + 15 + 15 + 17 = 123

先求 大盒子里的苹果橘子个数,再求小盒子里的个数 最后相加:

with t1 as(
select
sum(ifnull(apple_count,0)) apple_count,sum(ifnull(orange_count,0)) orange_count
from
Boxes
),
t2 as (selectsum(ifnull(apple_count,0)) apple_count,sum(ifnull(orange_count,0)) orange_countfrom(selectc.apple_count,c.orange_countfromBoxes b left join Chests cusing(chest_id)) s1
)select
sum(apple_count) apple_count,sum(orange_count) orange_count
from
(select  apple_count,orange_count from t1
union all
select apple_count,orange_count from  t2) t3

直接 left join:

select sum(ifnull(b.apple_count, 0) + ifnull(c.apple_count, 0)) as apple_count,sum(ifnull(b.orange_count, 0) + ifnull(c.orange_count, 0)) as orange_count
from Boxes b
left join Chests c
on b.chest_id = c.chest_id

1715. 苹果和橘子的个数相关推荐

  1. LeeCode1715. 苹果和橘子的个数

    SQL架构 表: Boxes +--------------+------+ | Column Name | Type | +--------------+------+ | box_id | int ...

  2. 使用matlab对苹果,橘子,香蕉图像进行分割和判断

    本文内容: 本文将图片映射到ycbcr空间,使用阈值分割对图片中的三种水果进行了提取 所处理的图像: OrangeBanana.jpg OrangeBananaApple.jpg 映射到ycbcr空间 ...

  3. html实现水果苹果桔子香蕉,【煮苹果香蕉橘子有营养吗?】_作用_功效-大众养生网...

    文章导读 苹果,香蕉苹果,桔子是三种较为火爆的新鲜水果,这三种新鲜水果含有丰富多彩的维他命,有益于胃肠消化吸收,对大便有益处.平常这种新鲜水果全是立即吃,现在有很多人把苹果,香蕉苹果跟桔子一块煮了吃, ...

  4. LeetCode-SQL(八)

    以下题目均来自力扣 141.1709.访问日期之间最大的空档期 难度:★★★★☆ 表: UserVisits +-------------+------+ | Column Name | Type | ...

  5. 【数据库系统】数据库系统学习与实践系列文章汇总目录(持续更新中)

    本文属于「数据库系统」系列文章的汇总目录,这一系列着重于「数据库系统知识的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏本文以作备忘.需要特别说明的是,为了透彻理解和全面掌握数据库系统 ...

  6. (多线程同步练习)桌子上有一只盘子,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子里的橘子,一个女儿专等吃盘子里的苹果。写出能使爸爸、妈妈、儿子、女儿正确同步工作的

    这是操作系统的一道课堂练习题 题目完整描述: 桌子上有一只盘子,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子里的橘子,一个女儿专等吃盘子里的苹果.写出能使爸爸.妈 ...

  7. 线性代数介绍-1-向量

    目录: 1 向量 1.1 向量和线性组合 1.2 向量的长度和点乘 1.2.1 向量的长度和单位向量 1.2.2 两个向量之间的角度 3. 小结 1 向量 线性代数的核心就是向量的两个运算:加法运算和 ...

  8. 操作系统课程设计-线程和进程的同步与互斥

    操作系统的课程设计 多线程和多进程同步方法解决水果分配问题: 水果分配的问题: 桌上有一只盘子,每次只能放入5只水果.爸爸专放苹果, 妈妈专放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹 ...

  9. 橘子苹果问题代码linux,多进程同步橘子苹果问题完整报告(附源代码).doc

    多进程同步橘子苹果问题完整报告(附源代码).doc 一. 课程设计目的 本次实验进行操作系统课程设计的主要任务是模拟生产者和消费者的一个衍生, 即实现"橘子-苹果问题" .这个问题 ...

最新文章

  1. Linux01-Linux高级特殊权限SUID详解25
  2. python def main return,python中main()函数写法
  3. eclipse配置struts.xml自动提示
  4. mysql 查数据 default无效_导入mysql数据的时候提示Field * doesn't have a default value解决方法...
  5. 这个黑科技小音箱,不用连蓝牙、一触即播
  6. 前端设定项目奖金有多少_【系列二】建筑工程项目激励模式探讨
  7. Linux curl使用简单介绍 (转)
  8. HALCON:图像采集之同步采集(synchronous)与异步采集(asynchronous)
  9. 5. 学习集合与常用类
  10. java POI导出excel性能优化
  11. Android简介:安卓开发环境搭建步骤
  12. OSG正二十面体均分球面
  13. 单双面打印价格一样吗_pdf打印200多页,单面打印一面0.3元,双面打印两面0.6元,那么单面打印划算还是双面打印更划算?...
  14. C++程序解线性一次方程组
  15. ZZULIOJ 1196: 数星星(二)(结构体专题)
  16. 电脑连接android手机测试,关于如何将手机画面投屏到PC的测试(Android)
  17. SCAR:Scalable Consensus Algorithm 一种可伸缩共识算法
  18. oc代码混淆_oc代码混淆
  19. 聚宝匯wap站测试工具版本号
  20. 范里安中级微观经济学(第9版)分析笔记和课后习题答案解析-完整版 范里安《微观经济学:现代观点》(第9版)笔记和课后习题详解!

热门文章

  1. 代码生成器-mybatis-plus-generator
  2. 408计算机先学哪个,408计算机考研视频课哪个好
  3. 计算机视觉小白入门第一问——什么是计算机视觉
  4. IEC61850笔记--IEC61850应用入门(三)
  5. linux设置nexus开机自启动_linux nexus自启动
  6. 【知识分享】百度搜索技巧
  7. Spring Cloud Netfilx Ribbon(负载均衡工具)
  8. matlab 水平投影,matlab图像处理方面的问题。水平投影和垂直投影!
  9. 多普勒效应 和 其的应用(测速仪、彩超、宇宙大爆炸 - 红移)
  10. java 连接teradata_java连接teradata | 学步园