inflearn logo
강의

Course

Instructor

[Concept Class] SQL Queries You Can Learn and Use Immediately

Practice Problem 3-4 (Functions)

질문드리겠습니다.

371

skyjoon2

48 asked

0

select substr(birthdate, 1, 7) as month, count(*) as cnt

from Employees

group by month;

 

위와같은 쿼리를 이용하여 문제를 푸는 도중

처음에는 groupby month 를 사용하지 않았습니다.

그 결과 month 의 컬럼에는 1968-12 이 출력되어 나왔는데 제일 최근 년도도 아니고, 오래된 년도도 아니고 왜 이친구가 대표로 출력되어 나오는건가요..?

sql

Answer 1

0

breachers

안녕하세요 :)

질문 감사합니다.

 

1968-12 년도는 employees 테이블의 가장 첫줄에 등장하는 사원의 생일값이에요.

 

image

그루핑을 하지 않고 집계연산을 사용할 경우, DB에 따라 집계연산 사용을 막거나 가장 처음 값을 출력해주곤 합니다. (그루핑과 보통 같이 사용하는 것이 일반적인 용법이에요)

 

그루핑이 어떻게 작동하는지 살펴보면 이해에 도움이 되는데요, GROUP BY를 사용할 경우 해당 절에 설정해준 값을 기준으로 컴퓨터가 여러개의 주머니를 만들기 위해 해당 컬럼을 처음부터 끝까지 탐색하게 됩니다. 하지만 GROUP BY를 설정하지 않은 경우 birthdate 컬럼의 맨 처음에 등장한 값을 반환하는 것이죠. 그래서 이 경우는 해당 1968-12 값은 대표 기준값이 아닌 단순히 컴퓨터가 맨 처음 값을 반환한 값으로 봐주시면 됩니다.

신규 쿼리 공간 오류 문의

0

48

1

cross join 문의

0

51

1

실습 문제 20번) 구문 작성 오류 관련 문의사항

0

62

1

에러가 발생합니다.

0

122

1

쿼리 실습링크

0

118

1

3중,4중 조인 질문

0

153

1

강의자료 및 슬랙

0

311

1

실습 시 에러. 강의와 똑같이 써도 에러나요.

1

608

2

리밋 입력 시 에러

0

608

2

쿼리 작성시 작은 따옴표와 큰 따옴표

0

5523

2

SQLD 자격증 관련 질문

0

482

1

PK 컬럼에 대한 DISTINCT 적용

0

673

1

질문드리겠습니다.

0

415

1

질문드리겠습니다.

0

394

1

질문드립니다.

0

386

1

count(distinct) 구문 오류 질문드립니다.

0

863

1

group by

1

560

1

cross <-> inner join 문의

1

289

1

실습문제 9-10 질문

1

320

1

실습문제 3-4(functions) 질문

1

254

1

select 절 함수 문의

1

302

1

제가 작성한 쿼리문도 맞게 쓴걸까요?

1

351

2

select절에서 함수 사용할 때 질문이 있습니다.

1

310

2

as로 컬럼명을 설정한 내용을 하위 코드에서 사용할 수 없는건가요?

1

270

3