sql 공부
#Lv3. 이용자의 포인트 조회하기
SELECT u.user_id,
u.email,
if(pu.point is null,0,point) point #(coalesce를 사용하면 if ~ is null 을 대체
FROM users u left join point_users pu on u.user_id = pu.user_id
order by point desc
;
#Lv4. 단골 고객님 찾기
#1
select c.CustomerName ,
count(o.CustomerID) OrderCount,
sum(o.TotalAmount) TotalAmount
from Customer c left join Orders o on c.CustomerID = O.CustomerID
group by c.CustomerName
;
#2 gpt형님짱
SELECT
c.Country,
c.CustomerName AS Top_Customer,
SUM(o.TotalAmount) AS Top_Spent
FROM
Customers c
JOIN
Orders o ON c.CustomerID = o.CustomerID
GROUP BY
c.Country, c.CustomerName
HAVING
SUM(o.TotalAmount) = (
SELECT
MAX(SumSpent)
FROM
(SELECT
SUM(o2.TotalAmount) AS SumSpent
FROM
Customers c2
JOIN
Orders o2 ON c2.CustomerID = o2.CustomerID
WHERE
c2.Country = c.Country
GROUP BY
c2.CustomerID) AS Subquery
);
서브쿼리와 having
'TIL' 카테고리의 다른 글
| [TIL] 241120 (2) | 2024.11.20 |
|---|---|
| [TIL] 241119 (1) | 2024.11.19 |
| [TIL] 241115 (5) | 2024.11.15 |
| [TIL] 241114 (4) | 2024.11.14 |
| [TIL] 241112 (2) | 2024.11.12 |