Skip to content

Commit 382868e

Browse files
authored
Create the-most-recent-three-orders.sql
1 parent 9ef3f8c commit 382868e

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Time: O(nlogn)
2+
# Space: O(n)
3+
4+
SELECT customer_name,
5+
customer_id,
6+
order_id,
7+
order_date
8+
FROM
9+
(SELECT @accu := (CASE
10+
WHEN co.customer_id = @prev THEN @accu + 1
11+
ELSE 1
12+
END) AS n,
13+
@prev := co.customer_id AS customer_id,
14+
co.name AS customer_name,
15+
co.order_id AS order_id,
16+
co.order_date AS order_date
17+
FROM
18+
(SELECT @accu := 0, @prev := 0) AS init,
19+
(SELECT c.name, c.customer_id, o.order_id, o.order_date FROM
20+
Customers c
21+
INNER JOIN Orders o
22+
ON c.customer_id = o.customer_id
23+
ORDER BY c.name ASC, c.customer_id ASC, o.order_date DESC) AS co
24+
) AS tmp
25+
WHERE n < 4;

0 commit comments

Comments
 (0)