Skip to content

Commit 3a655bf

Browse files
authored
Create find-peak-calling-hours-for-each-city.sql
1 parent c04ac73 commit 3a655bf

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Time: O(nlogn)
2+
# Space: O(n)
3+
4+
WITH call_by_hour_cte AS (
5+
SELECT city,
6+
HOUR(call_time) AS calling_hour,
7+
COUNT(*) AS number_of_calls
8+
FROM Calls
9+
GROUP BY 1, 2
10+
ORDER BY NULL
11+
),
12+
rank_calling_hour_cte AS (
13+
SELECT *,
14+
DENSE_RANK() OVER (PARTITION BY city ORDER BY number_of_calls DESC) AS rnk
15+
FROM call_by_hour_cte
16+
)
17+
18+
SELECT city,
19+
calling_hour AS peak_calling_hour,
20+
number_of_calls
21+
FROM rank_calling_hour_cte
22+
WHERE rnk = 1
23+
ORDER BY 2 DESC, 1 DESC;

0 commit comments

Comments
 (0)