본문 바로가기
반응형

WINDOW 함수4

[SQL] 12. SQL 레코드 순서 응용1 (예제 - 레코드에 순번 붙이기) [SQL 레코드 순서 응용1] - 레코드 안에 순번을 매기는 예제 이번 포스팅부터는 이제까지 배운 SQL의 기초 함수를 활용한 다양한 예제 풀이를 통해 응용된 쿼리를 익혀보도록 하겠다. 우선 순서 조작의 기초 쿼리를 이해하며, 아래의 4가지 과정을 통해 레코드에 순번을 붙이는 방법을 살펴보려 한다. 1. 기본 키가 한 개의 필드일 경우 2. 기본 키가 여러 개의 필드일 경우 3. 그룹마다 순번을 붙이는 경우 4. SEQ 필드에 순번 갱신하기 1. 기본 키가 한 개의 필드일 경우 기본 키가 한 개의 필드일 경우 순번(seq)를 매기는 예시를 살펴보려한다. 예시를 위해 아래의 Weights 테이블을 생성하였다. - WINDOW 함수 활용 ROW_NUMBER 함수를 사용할 수 있는 환경(Mysql은 지원하지 .. 2019. 7. 20.
[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] 05. 조건 분기(CASE),집합 연산, 윈도우 함수(WINDOW) SQL에서의 검색 조건 응용 이번 포스팅에서는 SQL 구문을 좀더 유연하게 다룰 수 있는 조건 분기(CASE),집합 연산(UNION, INTERSECT, EXCEPT) , 윈도우 함수(WINDOW) 검색 조건에 대해 설명해보고자 한다. - 조건분기(CASE 식) 보통 절차 지향형 프로그래밍 언어에서는 조건분기(조건문)을 사용하기 위해서 IF 조건문, SWITCH 조건문을 활용한다. SQL에서는 위와같은 조건문과 같은 '문장'이 아닌, CASE 식를 활용한 '식'을 사용함으로서 조건분기를 실현할 수 있다. 아래는 ADDRESS 테이블을 활용하여 CASE 식를 적용한 예시이다. 테이블의 address 컬림이 '서울시'인 경우 DISTRICT는 '경기'로, '부산'인 경우 '영남'으로, '인천'인 경우 '경기.. 2019. 7. 17.
반응형