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
- 코드스테이츠
- 투포인터알고리즘
- 재귀함수
- GCP
- MySQL
- 인텔리제이
- 버블정렬
- Array.asList
- Spring MVC 동작원리
- List.of
- vm인스턴스생성
- java
- 프로그래머스
- OOP
- 클라우드에서 도커 실행하기
- 코드스테이츠 백엔드
- 싱글톤패턴
- 성능테스트툴
- 11659
- 자바
- 코딩테스트
- 스택
- 재귀와반복문
- String.valueOf()
- 구간합구하기
- 알고리즘
- Spring Web MVC
- 백준 11659
- 백준
- Spring MVC 구성요소
Archives
- Today
- Total
순간을 기록으로
[MySQL] Top Earners | GROUP BY | SQL 구 작동순서 본문
문제
- 최대 총소득(maxinum total earnings)과 해당 값을 총소득으로 하는 직원의 수를 조회하세요.
- 총소득(total earnings)은 월급(salary)x월(months) 입니다.
풀이
처음에 max()함수를 생각했지만 나중에 다른 풀이를 참고하니깐 정렬과 LIMIT을 이용해서 최댓값을 구할 수 있다는 것을 배웠다.
GROUP BY를 사용하는 게 익숙하진 않지만 이해는 간다.
select (months*salary) as earnings, count(*)
from employee
group by months*salary
order by earnings desc
limit 1;
배운 것
SQL 구 작동 순서
- FROM 구: SQL은 제일 먼저 테이블을 조회합니다. 테이블이 있어야 어떤 명령을 내릴 수 있겠죠?
- WHERE 구: 테이블명을 확인했으니, 테이블에서 주어진 조건에 맞는 데이터를 추출합니다.
- GROUP BY 구: 조건에 맞는 데이터가 추출되었으니, 공통적인 데이터를 끼리 묶어서 그룹을 만들어 줍니다.
- HAVING 구: 공통적인 데이터들이 묶인 그룹 중, 주어진 조건에 맞는 그룹들을 추출합니다.
- SELECT 구: 최종적으로 추출된 데이터들을 조회합니다.
- ORDER BY구: 추출된 데이터들을 정렬해줍니다.
참고로 SELECT에서 Alias를(AS)를 만들면 SELECT 이후에 오는 구문은 ORDER BY구문 밖에 없으므로 ORDER BY에서만 사용 가능합니다.
GROUP BY 구조 예시
SELECT type, count(name)
FROM TABLE
GROUP BY type;
'Problem Solving' 카테고리의 다른 글
[MySQL] The PADS | CONCAT 함수 (0) | 2022.03.30 |
---|---|
[MySQL] Type of Triangle | CASE문(조건문) (0) | 2022.03.29 |
[MySQL] Employee Salaries (0) | 2022.03.29 |
[MySQL] Employee Names (0) | 2022.03.29 |
[MySQL] Higher Than 75 Marks | 부분 문자열 함수 (0) | 2022.03.29 |
Comments