MYSQL 입문자입니다 쿼리 질문드려요 #내용 수정하였습니다. 0 3 626

by 레거시 [SQL Query] 쿼리 입문 MYSQL Query [2019.08.21 14:29:05]


안녕하세요 얼마 전부터 SQL 에 입문한 직장인입니다.

다름이 아니라 현재 입문 단계이다보니 좌우도 모르는 상황이라 난해한 상황에 있어 도움을 요청드립니다.

현재 하려는 작업이

a 테이블과 b 테이블의 공통된 내용을 비교하여 배열 내에 값을 반복 수에 따라 취득하는 쿼리인데요 이렇게 설명하면 알기어려우실 것 같아 예를 들자면

ex) a table과 b table의 no라는 칼럼의 값이 서로 일치할 경우

b테이블의 배열 내에 있는 3번째의 값과 4번째의 값을 취득하여, a table 의 coord 칼럼에 수납한다.

이 때, b 테이블 내에 있는 배열 반복 값이 2 일 경우 3번째 4번째 그리고 7번째 8번째 값

3일 경우 3번째 4번째 7번째 8번째 11번째 12번째

4일 경우 ....

이런 식으로 증가하는 방식입니다.

이러한 느낌인데요... 현재 인터넷을 통해 조사하던 중 CASE함수를 통해 해보려고 했으나, 잘 되지를 않아 SQL 숙련자분들 도움을 요청드립니다.

참고로 현재 DBMS 는 POSTGRESQL 을 사용 중에 있습니다.

보안상 일부만 발췌하여 기재합니다. 양해부탁드릴게요

a테이블

_id no kind                                                                                                                                                                                               symbolcoord    
75943 80410 1                                                                                                                                                                                                    

b테이블

no   배열반복수 colm_array      

 

80410   2 {200762,606,4294864175,4285779725,80391,606,4294864006,4285780192}        

 no 값 일치 시, 배열 내에 복수의 특정값만을 끌어오는 처리입니다.

배열의 구성은 총 4가지 요소로 구성되어 있고 그 중 필요한 값은 2가지로서 이 값은 X와 Y값을 가리킵니다

그게 부여되어 있는 부분이 바로 배열의 3번째와 4번째 부분으로

0 / 0 / 0(x값에 대한 요소) / 0(y값에 대한 요소)

반복 값이 늘어날 수록

이 4가지 요소는 4->8->12->16 이런 식으로 늘어나게되는데

이 중에서 필요한 값은 x,y 값만을 가져오고 싶습니다.

설명이 부족하여 죄송합니다.

 

현재 다음의 쿼리로

select a.no as r_no
        , b.colm_array[3] as x_value
        , b.colm_array[4] as y_value
        , ST_GeomFromText('point('||b.colm_array[3]||' '||b.colm_array[4]||')', 4326) as coordinate
    from
        mono."haiseihenatuki" a
        left join d_kisarazu."20527" b
        on a.no is not null and a.no !=0
        and a.no = cast(b."no" as integer)
        
        where
            b."no" is not null

를 통해 반복수가 1일 경우에 다음과 같은 처리로 취득에 성공하였습니다

다만, 여기서 추가적으로 반복문이 증가 할 때 추가취득처리를 어떻게 해야될지 감이 잡히지가 않네요....ㅠㅠ

by 마농 [2019.08.21 15:16:52]

느낌을 문장으로 표현하지 마시고
실제 데이터를 표형태로 보여주세요.
원본 대비 결과표


by 타울 [2019.08.21 15:47:03]

배열 반복값에 따라  가져오는 배열 규칙이 잘 이해가 안되네요..

2이면 3,4,7,8

3이면 4,7,8,11,12


by 마농 [2019.08.21 18:37:58]

원본 대비 결과표가 필요합니다.
결과표가 없네요?
또한 케이스별 예시자료가 필요합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입