DA Study/TIL

[TIL] 리스트에서 요소 개수 카운트하기, 문자열 길이 반환 함수(CHAR_LENGTH) 활용 #SQL #MySQL

harrym8n 2025. 3. 18. 11:30

단어 리스트에서 단어 개수 카운트

  • 데이터 출처: 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을 더해서 셀 수 있다!
  • 원하는 결과를 조회하기 위해서 다양한 방법을 고려할 수 있다.