단어 리스트에서 단어 개수 카운트
- 데이터 출처: Kaggle(링크)
SELECT
pizza_type_id,
(CHAR_LENGTH(ingredients) - CHAR_LENGTH(REPLACE(ingredients,",","")) +1) AS type_ingredients_cnt
FROM
pizza_types
ORDER BY
pizza_type_id
[ 문제 상황 ]
- 피자 재료가 콤마(,)를 통해 나열되어 있다.
- 피자별로 피자 재료의 개수를 세어 조회해야 한다.
- MySQL에는 직접적으로 단어를 세는 함수가 없다.
[ 해결 ]
- 먼저 컬럼값의 전체 문자열 수를 카운트 한다.
- 콤마(,)를 없앤 컬럼값의 전체 문자열 수를 카운트 한다.
- 두 값의 차이가 곧 콤마(,)의 개수이다.
- 콤마의 개수에 1을 더하면 요소의 개수가 된다.
[ 회고 ]
- 직접적으로 문제를 해결하는 함수가 없다면, 우회로 생각해서 원하는 값을 조회할 수 있다.
- 리스트의 요소 개수를 직접 셀 수 없다면, 콤마의 개수에 1을 더해서 셀 수 있다!
- 원하는 결과를 조회하기 위해서 다양한 방법을 고려할 수 있다.
'DA Study > TIL' 카테고리의 다른 글
[TIL] 다중 CTE 활용한 복잡한 문제 해결 # MySQL # SQL (0) | 2025.04.09 |
---|---|
[TIL] 재귀 쿼리 (Recursive CTE) # MySQL # SQL (0) | 2025.04.06 |
[TIL] 이스케이핑(ESCAPING)의 개념 및 활용 예시 #SQL #MySQL (0) | 2025.03.10 |
[TIL] 윈도우 함수에서 ROWS로 특정 범위내 데이터 지정하기 #SQL #SQLite #solvesql (0) | 2025.03.06 |
[TIL] CASE WHEN을 활용해 SELECT절에서 데이터 필터링하기 #SQL #SQLite #solvesql (0) | 2025.03.02 |