- 성능 요약
- 구분
- Answer Code1(2023.02.25)
- 문제 풀이 - Answer Code1
- Answer Code2(2023.02.25)
- 문제 풀이 - Answer Code2
- Review
- Reference
성능 요약
- 메모리: 0.0 MB, 시간: 0.00 ms
구분
- 코딩테스트 연습 > String, Date
Answer Code1(2023.02.25)
SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY CATEGORY;
문제 풀이 - Answer Code1
-
이번 문제는 컬럼에서 특정 문자열을 추출하고 이를 집계하는 문제였다.
-
[1] 상품 카테코리 코드(PRODUCT_CODE, 2)별 상품 개수를 출력한다.
-
아래 실행 예시를 보면
CATEGORY
,PRODUCTS
을 확인할 수 있다. -> 문제에서 해당 두개의 컬럼을 사용하라는 의미다. -
‘PRODUCT_CODE’ 컬럼에서 앞 2글자가
CATEGORY
를 의미하고, 카테고리별로 해당하는 숫자를 구하면 되는 문제인 것이다. -
결과 :
SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(PRODUCT_ID) AS PRODUCTS
-
-
[2] PRODUCT 테이블에서 가져오는 것이므로 -> 결과 :
FROM PRODUCT
-
[3] 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요. -> 실행 예시에서는
CATEGORY
를 기준으로 오름차순 했으므로 해당 키워드를 사용하라는 의미다.-
유형별로 갯수를 알고 싶을 때 컬럼에 데이터를 그룹화 할 수 있는
GROUP BY
를 사용한다. (특정 컬럼을 그룹화) -
결과 :
GROUP BY CATEGORY
: 기본적으로 오름차순으로 정렬한다.
-
Answer Code2(2023.02.25)
SELECT SUBSTR(PRODUCT_CODE,1,2) AS CATEGORY
, COUNT(*)
FROM PRODUCT
GROUP BY SUBSTR(PRODUCT_CODE,1,2);
문제 풀이 - Answer Code2
-
해당 풀이는 데코님의 풀이를 참고했다.
-
SUBSTR()
함수는 문자열을 다룰 때 쓰는 함수다. -
문자열을 다루는 함수에는 총 4가지가 존재한다.
-
SUBSTR()
,MID()
,LEFT()
,RIGHT()
-
SUBSTR() 와 MID() 함수는 MySQL에서 문자열의 일부분을 가지고 오는 함수이다. 두 함수는 같은 역할을 수행하고 사용법 또한 같다.
-
-
SUBSTR()
-
SUBSTR(문자, 시작위치, 가져올 개수)
-
가져올 개수를 정의하지 않으면, 시작 위치 이후의 모든 값을 불러온다.
-
SELECT SUBSTR('HELLO', 2 , 3)
# 출력 결과 : 'ELL'
SELECT SUBSTR('HELLO', 2)
# 출력 결과 : 'ELLO'
-
MID()
-
MID(문자, 시작위치, 가져올 개수)
-
가져올 개수를 정의하지 않으면, 시작 위치 이후의 모든 값을 불러온다.
-
SELECT MID('HELLO', 1 , 3)
# 출력 결과 : 'HEL'
SELECT MID('HELLO', 3)
# 출력 결과 : 'LLO'
-
LEFT()
- LEFT(문자, 왼쪽부터 가져올 개수)
SELECT MID('HELLO', 4)
# 출력 결과 : 'HELL'
-
RIGHT()
- RIGHT(문자, 오른쪽부터 가져올 개수)
SELECT MID('HELLO', 3)
# 출력 결과 : 'LLO'
Review
-
첫 번째 풀이 방식에서는 유형별로 그룹화하는
GROUP BY
를 사용하는 것을 알았고, -
두 번째 풀이 방식에서는 문자열을 다루는 함수(
SUBSTR()
,MID()
,LEFT()
,RIGHT()
)들에 대해 새로 알게되었다. -
해당 문제에 대한 풀이 방법도 중요하지만, 그 외에 다른 추가적인 지식들도 같이 배우는 습관을 가지자.