【LeetCode】1158. 市场分析 I

表: Users

复制代码
+----------------+---------+
| Column Name    | Type    |
+----------------+---------+
| user_id        | int     |
| join_date      | date    |
| favorite_brand | varchar |
+----------------+---------+
user_id 是此表主键(具有唯一值的列)。
表中描述了购物网站的用户信息,用户可以在此网站上进行商品买卖。

表: Orders

复制代码
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| order_id      | int     |
| order_date    | date    |
| item_id       | int     |
| buyer_id      | int     |
| seller_id     | int     |
+---------------+---------+
order_id 是此表主键(具有唯一值的列)。
item_id 是 Items 表的外键(reference 列)。
(buyer_id,seller_id)是 User 表的外键。

表:Items

复制代码
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| item_id       | int     |
| item_brand    | varchar |
+---------------+---------+
item_id 是此表的主键(具有唯一值的列)。

编写解决方案找出每个用户的注册日期和在 **2019**年作为买家的订单总数。

任意顺序 返回结果表。

查询结果格式如下。

示例 1:

复制代码
输入:
Users 表:
+---------+------------+----------------+
| user_id | join_date  | favorite_brand |
+---------+------------+----------------+
| 1       | 2018-01-01 | Lenovo         |
| 2       | 2018-02-09 | Samsung        |
| 3       | 2018-01-19 | LG             |
| 4       | 2018-05-21 | HP             |
+---------+------------+----------------+
Orders 表:
+----------+------------+---------+----------+-----------+
| order_id | order_date | item_id | buyer_id | seller_id |
+----------+------------+---------+----------+-----------+
| 1        | 2019-08-01 | 4       | 1        | 2         |
| 2        | 2018-08-02 | 2       | 1        | 3         |
| 3        | 2019-08-03 | 3       | 2        | 3         |
| 4        | 2018-08-04 | 1       | 4        | 2         |
| 5        | 2018-08-04 | 1       | 3        | 4         |
| 6        | 2019-08-05 | 2       | 2        | 4         |
+----------+------------+---------+----------+-----------+
Items 表:
+---------+------------+
| item_id | item_brand |
+---------+------------+
| 1       | Samsung    |
| 2       | Lenovo     |
| 3       | LG         |
| 4       | HP         |
+---------+------------+
输出:
+-----------+------------+----------------+
| buyer_id  | join_date  | orders_in_2019 |
+-----------+------------+----------------+
| 1         | 2018-01-01 | 1              |
| 2         | 2018-02-09 | 2              |
| 3         | 2018-01-19 | 0              |
| 4         | 2018-05-21 | 0              |
+-----------+------------+----------------+
sql 复制代码
with cte1 as(
    select buyer_id,order_date
    from
    Orders
    where left(order_date,4)=2019
)

select
user_id as buyer_id,
join_date,
ifnull(count(buyer_id),0) as orders_in_2019
from
Users left join cte1
on Users.user_id=cte1.buyer_id
group by user_id
相关推荐
?ccc?14 分钟前
MySQL主从复制与读写分离
数据库·mysql
緈福的街口1 小时前
【leetcode】3. 无重复字符的最长子串
算法·leetcode·职场和发展
行止62 小时前
MySQL主从复制与读写分离
linux·数据库·mysql
ChicagoTypewriter2 小时前
MySQL用户和授权
mysql
圈圈编码3 小时前
悲观锁和乐观锁
java·开发语言·sql·mysql
学习中的码虫4 小时前
MySQL提升
数据库·mysql
小刘不想改BUG4 小时前
LeetCode 70 爬楼梯(Java)
java·算法·leetcode
卡布奇诺-海晨6 小时前
MySQL的MVCC机制
数据库·mysql
sz66cm6 小时前
LeetCode刷题 -- 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现
leetcode·矩阵·深度优先
秃头摸鱼侠7 小时前
MySQL查询语句(续)
数据库·mysql