0
点赞
收藏
分享

微信扫一扫

LeetCode(数据库)- 市场分析 I


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:注意如何将 COUNT(带条件判断) 转化为 SUM() 小技巧。

AC 代码

-- 解决方案(1)
SELECT user_id buyer_id, join_date, IFNULL(cnt, 0) orders_in_2019
FROM Users u LEFT JOIN
(SELECT buyer_id, COUNT(1) cnt, order_date
FROM Orders
WHERE order_date between '2019-01-01' AND '2019-12-31'
GROUP BY buyer_id) RS
ON u.user_id = RS.buyer_id

-- 解决方案(2)
SELECT user_id buyer_id, join_date, IFNULL(cnt, 0) orders_in_2019
FROM Users u LEFT JOIN
(SELECT buyer_id, SUM(IF(order_date between '2019-01-01' AND '2019-12-31', 1, 0)) cnt
FROM Orders
GROUP BY buyer_id) RS
ON u.user_id = RS.buyer_id


举报

相关推荐

0 条评论