• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

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

23.06.18 21:15 작성 조회수 130

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

권 철민님의 프로필

권 철민

지식공유자

23.06.19 16:17

안녕하십니까,

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

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

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

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

감사합니다.

cjh님의 프로필

cjh

질문자

23.06.19 16:29

감사합니다 !!