-
leetcode - 586. Customer Placing the Largest Number of OrdersSQL 문제풀이 2022. 7. 5. 17:11
난이도 : Easy
Table: Orders
+-----------------+----------+ | Column Name | Type | +-----------------+----------+ | order_number | int | | customer_number | int | +-----------------+----------+ order_number is the primary key for this table. This table contains information about the order ID and the customer ID.
Write an SQL query to find the customer_number for the customer who has placed the largest number of orders.
The test cases are generated so that exactly one customer will have placed more orders than any other customer.
SELECT customer_number FROM Orders GROUP BY customer_number HAVING COUNT(order_number) ORDER BY COUNT(order_number) DESC LIMIT 1
Accepted (24.33%)
SELECT customer_number FROM Orders GROUP BY customer_number HAVING COUNT(order_number) = ( SELECT COUNT(*) cnt FROM Orders GROUP BY customer_number ORDER BY cnt DESC LIMIT 1 )
Accepted (25.61%)
윈도우 함수를 활용한 방법
WITH sub2 AS ( SELECT customer_number , DENSE_RANK() OVER (ORDER BY cnt DESC) rnk FROM (SELECT customer_number , COUNT(order_number) cnt FROM Orders GROUP BY customer_number) sub ) SELECT customer_number FROM sub2 WHERE rnk = 1
Accepted (38.26%)
'SQL 문제풀이' 카테고리의 다른 글
leetcode - 596. Classes More Than 5 Students (0) 2022.07.05 leetcode - 595. Big Countries (0) 2022.07.05 leetcode - 584. Find Customer Referee (0) 2022.07.05 (Again) leetcode - 1241. Number of Comments per Post (0) 2022.07.04 leetcode - 585. Investments in 2016 (0) 2022.07.04