【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
相关推荐
白云千载尽2 小时前
leetcode 2598 执行操作后最大MEX
算法·leetcode·职场和发展
知其然亦知其所以然2 小时前
面试官问:MySQL表损坏怎么修?不会这三招你就凉了!
后端·mysql·面试
程序员三明治3 小时前
【Mybatis从入门到入土】ResultMap映射、多表查询与缓存机制全解析
java·sql·缓存·mybatis·resultmap·缓存机制·多表查询
Seven974 小时前
剑指offer-35、数组中的逆序对
java·leetcode
熬了夜的程序员4 小时前
【LeetCode】74. 搜索二维矩阵
线性代数·算法·leetcode·职场和发展·矩阵·深度优先·动态规划
坚持编程的菜鸟4 小时前
LeetCode每日一题——矩阵置0
c语言·算法·leetcode·矩阵
牛奶咖啡134 小时前
MySQL InnoDB Cluster 高可用集群部署与应用实践(下)
数据库·mysql·innodb cluster·mysql router·mysql路由的安装部署·mysql路由的测试·mgr组复制
坚持编程的菜鸟10 小时前
LeetCode每日一题——困于环中的机器人
c语言·算法·leetcode·机器人
冻咸鱼13 小时前
MySQL的配置
mysql·配置
不剪发的Tony老师15 小时前
Valentina Studio:一款跨平台的数据库管理工具
数据库·sql