返回介绍

solution / 1400-1499 / 1445.Apples & Oranges / README

发布于 2024-06-17 01:03:19 字数 2200 浏览 0 评论 0 收藏 0

1445. 苹果和桔子

English Version

题目描述

表: Sales

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| sale_date   | date  |
| fruit     | enum  | 
| sold_num    | int   | 
+---------------+---------+
(sale_date, fruit) 是该表主键(具有唯一值的列的组合)。
该表包含了每一天中"苹果" 和 "桔子"的销售情况。

 

编写解决方案报告每一天 苹果 和 桔子 销售的数目的差异.

返回的结果表, 按照格式为 ('YYYY-MM-DD') 的 sale_date 排序.

返回结果表如下例所示:

 

示例 1:

输入:
Sales 表:
+------------+------------+-------------+
| sale_date  | fruit    | sold_num  |
+------------+------------+-------------+
| 2020-05-01 | apples   | 10      |
| 2020-05-01 | oranges  | 8       |
| 2020-05-02 | apples   | 15      |
| 2020-05-02 | oranges  | 15      |
| 2020-05-03 | apples   | 20      |
| 2020-05-03 | oranges  | 0       |
| 2020-05-04 | apples   | 15      |
| 2020-05-04 | oranges  | 16      |
+------------+------------+-------------+
输出:
+------------+--------------+
| sale_date  | diff     |
+------------+--------------+
| 2020-05-01 | 2      |
| 2020-05-02 | 0      |
| 2020-05-03 | 20       |
| 2020-05-04 | -1       |
+------------+--------------+
解释:
在 2020-05-01, 卖了 10 个苹果 和 8 个桔子 (差异为 10 - 8 = 2).
在 2020-05-02, 卖了 15 个苹果 和 15 个桔子 (差异为 15 - 15 = 0).
在 2020-05-03, 卖了 20 个苹果 和 0 个桔子 (差异为 20 - 0 = 20).
在 2020-05-04, 卖了 15 个苹果 和 16 个桔子 (差异为 15 - 16 = -1).

解法

方法一:分组求和

我们可以将数据按照日期分组,然后用 sum 函数求出每天苹果和桔子的销售差异。如果是苹果,我们就用正数表示,如果是桔子,我们就用负数表示。最后我们按照日期排序即可。

# Write your MySQL query statement below
SELECT
  sale_date,
  SUM(IF(fruit = 'apples', sold_num, -sold_num)) AS diff
FROM Sales
GROUP BY 1
ORDER BY 1;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文