250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 데이터분석
- sql문풀
- 셀프조인
- 약수구하기
- levle1
- leetcodesql50
- 프로그래머스
- join
- 서브쿼리
- leetcode문풀
- 문풀
- SQL고득점KIT
- 활성사용자수
- 위키독스
- 데이터리안
- 리트코드sql
- With
- UNION
- mysql
- with절
- SQL
- GROUPBY
- leetcode
- 파이썬문풀
- 코딩테스트
- 코테
- 윈도우함수
- SQL테스트
- 파이썬
- 프로그래머스문풀
Archives
- Today
- Total
꿈은 데이터분석가, 취미는 계획
[MY SQL] 상/하반기 점수의 합이 가장 높은 사원 찾기 본문
728x90
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 조건에 맞는 사원정보 조회하기
링크: https://school.programmers.co.kr/learn/courses/30/lessons/284527
문제(일부): 2022년 상/하반기 평가 점수의 합이 가장 높은 사원을 출력
1. GROUP BY 활용하기
1)필요한 정보를 조회하기 위해 2개 테이블 JOIN2) 상/하반기 점수를 합하기 위해 직원ID(HE.EMP_NO)로 GROUP BY 하여 SUM(HG.SCORE)
3) LIMIT 1으로 가장 높은 점수 직원 확인
SELECT SUM(HG.SCORE) AS SCORE, HE.EMP_NO, HE.EMP_NAME, HE.POSITION, HE.EMAIL
FROM HR_EMPLOYEES AS HE
INNER JOIN HR_GRADE AS HG
ON HE.EMP_NO = HG.EMP_NO
WHERE YEAR = 2022
GROUP BY HE.EMP_NO
ORDER BY SCORE DESC
LIMIT 1
2. PARTITION BY 활용하기
1번의 (1), (2)은 동일하지만
GROUP BY가 아닌 PARTITION BY로 직원ID(HE.EMP_NO)를 묶어서 SUM(HG.SCORE)
SELECT SUM(HG.SCORE) OVER (PARTITION BY HE.EMP_NO) AS SCORE
, HE.EMP_NO
, HE.EMP_NAME
, HE.POSITION
, HE.EMAIL
FROM HR_EMPLOYEES AS HE
INNER JOIN HR_GRADE AS HG
ON HE.EMP_NO = HG.EMP_NO
WHERE HG.YEAR = 2022
ORDER BY SCORE DESC
LIMIT 1
728x90
'SQL > sql문풀' 카테고리의 다른 글
[MY SQL] WITH절을 활용하여 평가등급 및 성과금 조회 (1) | 2024.04.21 |
---|---|
[MY SQL] 언어별 개발자 분류하기_비트 연산자 활용 (0) | 2024.04.21 |
[MY SQL] WITH RECURSIVE 재귀쿼리 (0) | 2024.04.17 |
[MY SQL] 그룹별로 필터링 조건이 있는 경우 (0) | 2024.04.16 |
[MY SQL] 특정 그룹에서 가장 비싼 제품의 정보 가져오기 (0) | 2024.04.16 |