반응형 SQL16 [SQL] 09. SQL에서의 반복 (CASE&WINDOW함수 + 예시2) SQL에서의 '반복'(반복문X) - CASE & WINDOW 함수 활용2 앞선 포스팅에 이어 SQL에서의 반복에 관한 두번째 예시를 소개하려 한다. [ Example 2 - 인접한 우편 번호 찾기 ] 다음은 PosatlCode 테이블에서 [4130033 - 시즈오카 아타미 아타미]와 가장 가까운 지역의 우편번호를 찾는 예시이다. 여기서 제시된 우편번호의 앞자리부터 순차적으로 똑같은 우편번호의 지역이 가까운 지역이라 할 수 있겠다. 절차 지향형 사고방식이라면 레코드 하나에 대해 7번의 비교를 반복을 하게 되며, 이는 레코드가 많아질수록 비효율적인 성능을 초래하게 된다. - CASE 함수의 활용 : (사용자 지정)순위 계산하기 이 예시의 경우는 제시된 [4130033 - 시즈오카 아타미 아타미]의 우편번호와.. 2019. 7. 18. [SQL] 08. SQL에서의 반복 (개념 + CASE&WINDOW함수 + 예시1) SQL에서의 '반복'(반복문X) - CASE & WINDOW 함수 활용1 - SQL의 반복문? 간단하게 말하면, 기본적인 SQL에는 반복문이 없다. 자바나 C#에서 사용하는 절차형 프로그래밍(IF문, Loop문 등)의 개념을 기본 베이스로 알고있는 일반 개발자들에게는 이런 점에서 SQL이 매우 불편한 언어라고 생각된다. SQL을 활용한 절차적 데이터 베이스 언어이 PL/SQL을 쓰거나 다른 언어를 결합하여 사용하면 크게 문제는 없지만, 이 나름대로 불편한 점이 아닐 수 없을 것이다. - 반복계 코드 VS 포장계 코드 책에서 SQL에서의 반복이라는 개념을 설명할 때 '반복계 코드'와 '포장계 코드'라는 용어를 활용한다. 다음은 두 용어를 정리한 표이다. (책의 개념을 필자 나름대로 요약한 것인데, 이 부분.. 2019. 7. 18. [SQL] 07. 조건 분기 응용2 (집계 함수를 활용한 조건 분기 비교) 조건분기 활용 비교하기(feat. 집계 함수) 지난 포스팅에서는 CASE 식과 UNION + WHERE 구를 비교하며 성능에 대한 차이를 비교했다. 이번 포스팅에서는 집계 함수를 활용할 때의 CASE 식과 UNION + WHERE 구의 성능을 비교하는 예시를 소개하려 한다. 아래의 Population 테이블을 통해, (1)집계 대상으로 조건 분기 하는 경우와 (2)집약 결과로 조건 분기를 하는 경우를 설명해보겠다. (1) 집계 대상으로 조건 분기하는 경우 - UNION + WHERE 구 활용 아래의 쿼리는 원래의 Population 테이블의 레코드를 레이아웃을 바꿔 보여주는 기능을 하는 쿼리이다. 지역(prefecture)별로 그룹화하여 성별(sex)가 남자(1)인 경우의 인구수를 뽑아내고, 같은 방법으.. 2019. 7. 18. [SQL] 06. 조건 분기 응용1 (CASE 식과 WHERE 구의 비교) 조건분기 활용 비교하기 저번 포스팅에서, CASE 식을 활용한 조건분기를 활용하면 쿼리의 성능을 높일 수 있다고 언급을 하였다. 특히, UNION + WHERE 구를 활용한 조건분기의 경우와 비교하면 그 성능의 차이를 쉽게 비교할 수 있다. - CASE 식 vs UNION + WHERE 구 아래의 ITEMS 테이블 예시를 통해 성능적인 측면에서 CASE 식과 UNION + WHERE 구의 비교를 해보고자 한다. ITEMS 테이블에서 PRICE_TAX_EX는 세전 가격을, PRICE_TAX_IN은 세후 가격을 나타낸다. 우리가 보고자 하는 결과 테이블에서는 2001년 이전의 물품 가격은 PRICE_TAX_EX(세전 가격)으로, 2002년 이후의 물품 가격은 PRICE_TAX_IN(세후 가격)으로 추출되는 .. 2019. 7. 17. 이전 1 2 3 4 다음 반응형