인프런 커뮤니티 질문&답변

cjh님의 프로필 이미지
cjh

작성한 질문수

데이터 분석 SQL Fundamentals

역분위 함수 percentile_disc와 percentile_cont 이해와 실습

강사님 group by에서 궁금한게 있습니다.

해결된 질문

작성

·

240

0

with
temp_01 as 
(
	select b.category_id, b.category_name as category_name 
	, percentile_disc(0.25) within group (order by unit_price) as qt_1
	, percentile_disc(0.5) within group (order by unit_price) as qt_2
	, percentile_disc(0.75) within group (order by unit_price) as qt_3
	, percentile_disc(1.0) within group (order by unit_price) as qt_4
from nw.products a
	join nw.categories b on a.category_id = b.category_id
group by b.category_id
)
select * from temp_01;
  • 2번

    with
    temp_01 as 
    (
    	select a.category_id, max(b.category_name) as category_name 
    	, percentile_disc(0.25) within group (order by unit_price) as qt_1
    	, percentile_disc(0.5) within group (order by unit_price) as qt_2
    	, percentile_disc(0.75) within group (order by unit_price) as qt_3
    	, percentile_disc(1.0) within group (order by unit_price) as qt_4
    from nw.products a
    	join nw.categories b on a.category_id = b.category_id
    group by a.category_id
    )
    select * from temp_01;

    2번은 강사님이 작성하신 코드입니다.

  • 1번처럼 작성하지 않으시고 2번으로 작성하신 이유가 따로 있으신가요 ?

  • 인덱스가 중복되는게 있으면 효율이 안좋아서

  • fk인 a.category를 사용하는게 더 좋아서 선택하신건지 아니면 1번이나 2번이나 둘다 큰 의미가 없는건지 궁금합니다.

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

  1. 1번처럼 작성하지 않으시고 2번으로 작성하신 이유가 따로 있으신가요 ?

    => 별 이유가 없습니다. 둘 다 결과가 동일하기 때문입니다.

  2. 인덱스가 중복되는게 있으면 효율이 안좋아서 fk인 a.category를 사용하는게 더 좋아서 선택하신건지 아니면 1번이나 2번이나 둘다 큰 의미가 없는건지 궁금합니다.

    => 둘다 큰 의미가 없습니다. 그리고 다시 말씀드리지만, 본 강의의 SQL 실습코드/실습데이터/인덱스 구조는 SQL 성능 튜닝 강의 용도로 만들어진 것이 아니오니, 성능적인 측면으로 실습 SQL을 받아들이지 않으셨으면 합니다.

감사합니다.

cjh님의 프로필 이미지
cjh
질문자

감사합니다 !!

cjh님의 프로필 이미지
cjh

작성한 질문수

질문하기