- 상황: 여러분들은 스파르타코딩클럽의 분석가로 취직했습니다. DBeaver를 테스트 해볼 겸 “김”씨로 시작하는 이용자들 수를 세어 보기로 했습니다.
- 데이터 설명
- user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블입니다.
- user_id: 익명화된 유저들의 아이디(varchar255)
- created_at: 아이디 생성 날짜(timestamp)
- updated_at: 정보 업데이트 날짜(timestamp)
- name: 익명화된 유저들의 이름(varchar255)
- email: 이메일(varchar255)
- user 테이블은 스파르타 코딩클럽에 가입한 유저들의 정보를 날짜별로 기록한 테이블입니다.
코드
SELECT count(distinct(user_id)) as name_김서방찾기
FROM
users
WHERE
substr(name,1,1) = '김';
count(distinct(user_id))는 SQL 쿼리에서 특정 컬럼의 중복을 제거한 후, 그 값의 개수를 세는 기능을 수행하는 구문.
- count() 함수: SQL에서 count() 함수는 특정 조건에 맞는 행의 수를 세는 데 사용.
예를 들어, count(*)는 모든 행의 수를 세고, count(column_name)은 해당 컬럼의 값이 NULL이 아닌 행의 수를 센다. - distinct 키워드: distinct 키워드는 중복된 값을 제거.
예를 들어, distinct(column_name)은 특정 컬럼에서 중복된 값을 제거한 후 유일한 값만 남긴다. - user_id: 이 예제에서 user_id는 스파르타코딩클럽의 유저들을 구별하는 고유 식별자.
따라서 count(distinct(user_id))는 user_id 컬럼에서 중복을 제거한 유일한 사용자 ID의 수를 세는 것을 의미.
이 구문은 특정 조건에 맞는 유니크한 사용자 수를 알아내는 데 유용.
여기서 substr 함수는 "substring"의 줄임말로, 문자열에서 특정 부분을 잘라내는 기능을 한다.
SQL에서는 주로 문자열의 일부를 추출할 때 사용.
예를 들어, 이름이 "김철수"인 사람의 성을 확인하고 싶을 때, substr 함수를 사용해 "김"이라는 첫 글자만 가져올 수 있다.