-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path1445. Apples & Oranges.sql
70 lines (54 loc) · 2.3 KB
/
1445. Apples & Oranges.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Table: Sales
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| sale_date | date |
| fruit | enum |
| sold_num | int |
+---------------+---------+
(sale_date, fruit) is the primary key (combination of columns with unique values) of this table.
This table contains the sales of "apples" and "oranges" sold each day.
Write a solution to report the difference between the number of apples and oranges sold each day.
Return the result table ordered by sale_date.
The result format is in the following example.
Example 1:
Input:
Sales table:
+------------+------------+-------------+
| 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 |
+------------+------------+-------------+
Output:
+------------+--------------+
| sale_date | diff |
+------------+--------------+
| 2020-05-01 | 2 |
| 2020-05-02 | 0 |
| 2020-05-03 | 20 |
| 2020-05-04 | -1 |
+------------+--------------+
Explanation:
Day 2020-05-01, 10 apples and 8 oranges were sold (Difference 10 - 8 = 2).
Day 2020-05-02, 15 apples and 15 oranges were sold (Difference 15 - 15 = 0).
Day 2020-05-03, 20 apples and 0 oranges were sold (Difference 20 - 0 = 20).
Day 2020-05-04, 15 apples and 16 oranges were sold (Difference 15 - 16 = -1).
Solution -
/* Write your T-SQL query statement below */
select a.sale_date, a.sold_num-b.sold_num as 'diff' from Sales a, Sales b where a.fruit = 'apples' and b.fruit='oranges' and a.sale_date = b.sale_date GROUP BY a.sale_date;
SELECT a.sale_date, a.sold_num-b.sold_num as 'diff' from Sales a JOIN Sales b where a.fruit = 'apples' and b.fruit = 'oranges' and a.sale_date = b.sale_date GROUP BY a.sale_date;
SELECT a.sale_date, a.sold_num - b.sold_num as 'diff'
from
(select sale_date, sold_num from Sales where fruit = ('apples')) a
JOIN
(select sale_date, sold_num from Sales where fruit = ('oranges')) b
ON
a.sale_date = b.sale_date
GROUP BY a.sale_date;