본문 바로가기

SQL 12

[자바/SQL] 동적 트리 만드는 방법에 대해서 다음과 같은 차트를 만들고 싶었다. 시도별 사고유형별 사망자수의 정보가 담긴 treemap 계층적인 구조를 만들기 위해 다른 시각화 툴을 분석해보았는데, 어김없이 트리의 구조를 쓰고 있어, 나 또한 트리 구조로 만들어보고자 했다. 트리를 만드는 내부로직은 내가 찾아볼 수 없기 때문에 직접 구현해야 했다. 데이터의 경우 다음과 같이 온다. SELECT "시도", "사고유형대분류" , SUM("사망자수") FROM "DO48" GROUP BY ROLLUP("시도", "사고유형대분류") ORDER BY "시도" DESC, "사고유형대분류" DESC SQL를 자세히 보면 각 컬럼별로 DESC 된 것을 볼 수 있다. 이유는 나중에 동적 트리를 만들면서 설명하겠다. 아무튼 계층적인 구조를 만들기 위해 SQL ROL.. 2020. 12. 4.
[SQL] Column name is ambiguous 에러 처리 후기 다음과 같은 테이블 차트를 만들었다. 해당되는 값을 받아오기 위해서 아래와 같은 형태의 SQL을 만들었다. SELECT TargetColumns FROM ( SELECT ROWNUM AS R, TargetColumns FROM TargetDB ) WHERE R BETWEEN start AND start+pagesize 여기서 TargetColumns는 대상이 되는 컬럼들의 집합으로 "시도", "사고유형","사망자수" 에 해당한다. 처음에는 문제가 없었다. 하지만 TargetColumns 들이 "시도", "시도", "사고유형" 처럼 중복된 columns 이 있을 경우, "Column name is ambiguous error"를 내뱉으면 터졌다. 이유는 서브쿼리에서 불러온 TargetColumns과 메인 .. 2020. 10. 5.
[프로그래머스] Oracle SQL - 보호소에서 중성화한 동물 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) F.. 2020. 8. 26.
[프로그래머스] Oracle SQL - 오랜 기간 보호한 동물(1) 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) F.. 2020. 8. 26.