[ 알고리즘 ] LeetCode 2329. Product Sales Analysis V

이주 weekwith.me·2022년 7월 4일
0

알고리즘

목록 보기
31/73
post-thumbnail

블로그를 이전 중이라 완료되기 전까지는 벨로그에 작성할 계획입니다.
이후 모든 글은 https://weekwith.me 에 작성 예정이니 다른 글이 궁금하시다면 해당 링크를 통해 방문해주세요.

본 글은 [ LeetCode ] 2329. Product Sales Analysis V를 풀고 작성한 글입니다.

문제

테이블

Table: Sales

+-------------+-------+
| Column Name | Type  |
+-------------+-------+
| sale_id     | int   |
| product_id  | int   |
| user_id     | int   |
| quantity    | int   |
+-------------+-------+
sale_id is the primary key of this table.
product_id is a foreign key to Product table.
Each row of this table shows the ID of the product and the quantity purchased by a user.

Table: Product

+-------------+------+
| Column Name | Type |
+-------------+------+
| product_id  | int  |
| price       | int  |
+-------------+------+
product_id is the primary key of this table.
Each row of this table indicates the price of each product.

요구사항

Write an SQL query that reports the spending of each user.

Return the resulting table ordered by spending in descending order. In case of a tie, order them by user_id.

풀이

접근법

INNER JOIN 구를 활용해 product_id 필드를 기준으로 Sales 테이블에 Product 테이블을 결합하고 user_id 필드를 기준으로 GROUP BY 구를 수행한 다음 SUM 집계 함수를 사용해 spending 필드를 구하면 된다.

끝으로 결과로 얻게 된 spending 필드 기준으로 내림차순, user_id 필드 기준으로 오름차순 정렬하면 된다.

나의 풀이

접근법을 토대로 풀면 아래와 같다.

SELECT
    Sales.user_id,
    SUM(Sales.quantity * Product.price) AS spending
FROM Sales
JOIN Product
USING (product_id)
GROUP BY Sales.user_id
ORDER BY spending DESC, user_id ASC;
profile
Be Happy 😆

0개의 댓글