본문 바로가기
카테고리 없음

sql 과제 1 데이터 속 김서방 찾기

by 차리하루일기 2024. 8. 12.
  • 상황: 여러분들은 스파르타코딩클럽의 분석가로 취직했습니다. DBeaver를 테스트 해볼 겸 “김”씨로 시작하는 이용자들 수를 세어 보기로 했습니다.
  • 데이터 설명
    • user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블입니다.
      • user_id: 익명화된 유저들의 아이디(varchar255)
      • created_at: 아이디 생성 날짜(timestamp)
      • updated_at: 정보 업데이트 날짜(timestamp)
      • name: 익명화된 유저들의 이름(varchar255)
      • email: 이메일(varchar255)

 

김서방 찾기 sql 실행 결과

 

코드

SELECT count(distinct(user_id)) as name_김서방찾기
FROM 
    users
WHERE 
    substr(name,1,1) = '김';

 

count(distinct(user_id))는 SQL 쿼리에서 특정 컬럼의 중복을 제거한 후, 그 값의 개수를 세는 기능을 수행하는 구문.

  1. count() 함수: SQL에서 count() 함수는 특정 조건에 맞는 행의 수를 세는 데 사용.
    예를 들어, count(*)는 모든 행의 수를 세고, count(column_name)은 해당 컬럼의 값이 NULL이 아닌 행의 수를 센다.
  2. distinct 키워드: distinct 키워드는 중복된 값을 제거.
    예를 들어, distinct(column_name)은 특정 컬럼에서 중복된 값을 제거한 후 유일한 값만 남긴다.
  3. user_id: 이 예제에서 user_id는 스파르타코딩클럽의 유저들을 구별하는 고유 식별자.

따라서 count(distinct(user_id))는 user_id 컬럼에서 중복을 제거한 유일한 사용자 ID의 수를 세는 것을 의미.
이 구문은 특정 조건에 맞는 유니크한 사용자 수를 알아내는 데 유용.

 

여기서 substr 함수는 "substring"의 줄임말로, 문자열에서 특정 부분을 잘라내는 기능을 한다.

SQL에서는 주로 문자열의 일부를 추출할 때 사용.

예를 들어, 이름이 "김철수"인 사람의 성을 확인하고 싶을 때, substr 함수를 사용해 "김"이라는 첫 글자만 가져올 수 있다.