-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
해결됨
강사님 group by에서 궁금한게 있습니다.
23.06.18 21:15 작성 조회수 158
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
권 철민
지식공유자2023.06.19
안녕하십니까,
1번처럼 작성하지 않으시고 2번으로 작성하신 이유가 따로 있으신가요 ?
=> 별 이유가 없습니다. 둘 다 결과가 동일하기 때문입니다.
인덱스가 중복되는게 있으면 효율이 안좋아서 fk인 a.category를 사용하는게 더 좋아서 선택하신건지 아니면 1번이나 2번이나 둘다 큰 의미가 없는건지 궁금합니다.
=> 둘다 큰 의미가 없습니다. 그리고 다시 말씀드리지만, 본 강의의 SQL 실습코드/실습데이터/인덱스 구조는 SQL 성능 튜닝 강의 용도로 만들어진 것이 아니오니, 성능적인 측면으로 실습 SQL을 받아들이지 않으셨으면 합니다.
감사합니다.
답변 1