퀘스트 중 새로 학습한 것
- limit
order by 절에서 출력 갯수
상위 몇명, 하위 몇명 뽑을 때 유용하게 쓰였음.- 서브 쿼리의 활용
– 여러번의 연산을 수행해야 할 때
– 조건문에 연산 결과를 사용하여야 할 때
– 조건에 쿼리 결과를 사용하고 싶을 때- join 함수 사용
#1
select*
from lol_users
order by rating desc
#2
select name
from lol_users
order by join_date desc
limit 1
#인강에서 배운 max함수를 사용하고 싶을 때 (select, from문이 2번 나옴)
select name
from lol_users
where join_date = (select max(join_date) from lol_users)
#3
select*
from lol_users
order by region, rating desc
#4
select region,
avg(rating) '평균 레이팅'
from lol_users
group by region
#1
select*
from lol_feedbacks
order by satisgaction_score desc
#2
#유저별 최신 피드백 날짜를 찾는 쿼리
select user_name,
max(feedback_date)
from lol_feedbacks
group by user_name
#최신 피드백 점수를 찾는 방법은 서브쿼리와 join을 사용하여야 함.
#각 유저별 최신 날짜를 찾고, 날짜에 해당하는 점수를 찾아야 하는데,
#이때 사용 하는것이 서브쿼리와 join 함수
#핵심은 서브쿼리에서 최신 날짜를 구하고, 메인 쿼리에서 join하여 해당 날짜의 점수를 가져오는 것.
select f.user_name,
f.satisfaction_score '유저별 최신 피드백',
f.feedback_date
FROM lol_feedbacks
inner join (
select user_name, max(feedback_date)
from lol_feedbacks
group by user_name)
ON f.user_name = latest_feedback.user_name
AND f.feedback_date = latest_feedback.latest_feedback_date
#3
select count(1)
from lol_feedbacks
where satisfaction_score = 5
#4
select user_name,count(1) '유저별 피드백 수'
from lol_feedbacks
group by user_name
order by count(1) desc
limit 3
#동점자는 어떻게 처리하는지 궁금함
#5
select feedback_date, avg(satisfaction_score)
from lol_feedbacks
group by feedback_date
order by avg(satisfaction_score) desc
limit 1
사실 사전캠프라서 가벼운 마음으로 파이썬, SQL과 안면이나 트자 하는 마음이었는데, 조원분들이 너무 열심히 하셔서 나도 같이 동화되는 기분이다. 좋은 영향을 주는 동료가 있다는건 참 감사한 일이다.
나도 열심히해서 도움이 될 수 있는 동료가 되어야지!