concat() 함수와는 다르게 피연산자가 2개 뿐인 함수이다.

대신 null 값들을 array_cat()으로 합치면 null이 나와서 좀 편리하다.

 

[링크 : https://www.postgresql.org/docs/9.1/functions-array.html]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

pgmodeler  (0) 2020.01.05
스칼라 서브쿼리(scalar subquery)  (0) 2020.01.04
테이블 내 두 컬럼 값 바꾸기(임시 변수)  (0) 2019.12.24
left join이 능사는 아니다  (0) 2019.12.24
dense_rank()  (0) 2019.12.22
Posted by 구차니

mysql만 되는건가?

 

[링크 : https://blog.naver.com/thesims1004/220360410840]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

스칼라 서브쿼리(scalar subquery)  (0) 2020.01.04
array_cat()  (0) 2019.12.30
left join이 능사는 아니다  (0) 2019.12.24
dense_rank()  (0) 2019.12.22
postgresql 의 반복문을 이용한 문자열 치환하기  (0) 2019.12.20
Posted by 구차니

아무생각 없이 inner join은 교집합

left join은 왼쪽 영역대로 쓰는 거라고 생각을 해서 수가 변하지 않을꺼라고 생각했는데

간간히 늘어나는 경우가 있어 이해를 못하고 distinct나 group by로 억제(!) 했었는데

이런 발상 자체가 데이터 다루는 관점에서는 너무나 무책임하고 위험하다는걸 이제야 깨달음

 

아무튼.. 1:N 관계의 테이블을 left join 하면 행이 뻥튀기 된다.

반대로 말하면 left join 전에는 반드시 1:1 관계인지 확인을 해야 하고

최소한 1:N은 아닌것을 확인하고 N:1이거나 1:1 인지 확인하고 써야 한다.

 

[링크 : https://brunch.co.kr/@qqplot/22]

[링크 : https://okky.kr/article/303538]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

array_cat()  (0) 2019.12.30
테이블 내 두 컬럼 값 바꾸기(임시 변수)  (0) 2019.12.24
dense_rank()  (0) 2019.12.22
postgresql 의 반복문을 이용한 문자열 치환하기  (0) 2019.12.20
postgresql loop 반복문  (0) 2019.12.20
Posted by 구차니

row_number()로 하면 무조건 등수가 생기는데

동일 값을 가지는 부분을 묶어서 1,2,3 이런식으로 group 등수를 매기기 위해서는

row_number() 대신

dense_rank()를 쓰면 되는 듯?

 

[링크 : https://ahrang.tistory.com/10]

Posted by 구차니

결론만 말하자면.. wine으로 돌리는 패키지는 있는데

native 하게 리눅스 용으로 만들어진 버전은 존재하지 않는다

snap 이라는게 wine 랩퍼인지는 좀 찾아봐야 할 듯..

 

[링크 : https://jangjy.tistory.com/312]

[링크 : https://www.omgubuntu.co.uk/2019/05/install-notepad-in-ubuntu]

[링크 : https://vitux.com/how-to-install-notepad-on-ubuntu/]

Posted by 구차니

shift-f4 는 아니고

shift-ctrl-y로 '반복' 이라는 이름으로 마지막 행동을 반복하는 설정이 있다.

그래도F4가 아니니 좀 많이 불편하구만..

 

[링크 : https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=96740]

[링크 : https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=6258]

Posted by 구차니

정상작동 되는지 전체가 들어간지는 아직 몰라서 확인이 필요함.

예전에 3 letter를 1letter로 replace를 이용한 건 편리했는데

1letter를 3letter로 바꾸는건 오류가 있어서 못쓰다가, 이번에 반복문을 이용해서 한번 시도해 봄

 

DO $$ 
DECLARE
   hgvspthreeletter text := 'Thr790Met';
   hgvsponeletter text := 'T790Mfs';
   hgvslen integer := length(hgvsponeletter);
   i	integer := 1;
   result	text;
   conv		text;
   res		text;
BEGIN 

--    RAISE NOTICE '%의 길이는 %이며 원래는 % 임', 
--        hgvsponeletter, hgvslen, hgvspthreeletter;

while i<= hgvslen loop
	select substring(hgvsponeletter, i, 1) into result;
	 SELECT i+1 INTO i;
	SELECT case 
		when result = 'A' then 'Ala'
		when result = 'B' then 'Asx'
		when result = 'C' then 'Cys'
		when result = 'D' then 'Asp'
		when result = 'E' then 'Glu'
		when result = 'F' then 'Phe'
		when result = 'G' then 'Gly'
		when result = 'H' then 'His'
		when result = 'I' then 'Ile'
		when result = 'J' then 'Xle'
		when result = 'K' then 'Lys'
		when result = 'L' then 'Leu'
		when result = 'M' then 'Met'
		when result = 'N' then 'Asn'
		when result = 'O' then 'Pyl'
		when result = 'P' then 'Pro'
		when result = 'Q' then 'Gln'
		when result = 'R' then 'Arg'
		when result = 'S' then 'Ser'
		when result = 'T' then 'Thr'
		when result = 'U' then 'Sec'
		when result = 'V' then 'Val'
		when result = 'W' then 'Trp'
		when result = 'X' then 'X'
		when result = 'Y' then 'Tyr'
		when result = 'Z' then 'Glx'
		when result = '*' then 'Ter' -- '*'
		else result
	end INTO conv;
	SELECT concat(res, conv) into res;
-- 	raise notice '% %' ,conv,res;
	end loop;
	
	raise notice '%' ,res;
END $$;

 

알림: Thr790Metfs

DO

Query returned successfully in 72 msec.

 

[링크 : https://www.hgvs.org/mutnomen/codon.html]

[링크 : http://www.gisdeveloper.co.kr/?p=4621]

[링크 : http://www.gisdeveloper.co.kr/?p=4573]

[링크 : https://w3resource.com/PostgreSQL/substring-function.php]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

left join이 능사는 아니다  (0) 2019.12.24
dense_rank()  (0) 2019.12.22
postgresql loop 반복문  (0) 2019.12.20
sql array any all  (0) 2019.12.20
postgres 동일 컬럼명 에러  (0) 2019.12.20
Posted by 구차니

디버깅 방법은 좀 찾아 봐야겠지만..

일단 텍스트에 대해서 length로 반복 횟수를 정하고

substr()로 특정 위치의 값 하나를 빼내서

다른 변수에 치환해서 넣어주면 원하는 기능을 구현을 할 수 는 있을 것으로 보인다.

 

[링크 : http://www.gisdeveloper.co.kr/?p=4573] <<

[링크 : http://www.gisdeveloper.co.kr/?p=4621]

[링크 : http://www.postgresqltutorial.com/plpgsql-loop-statements/]

 

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

dense_rank()  (0) 2019.12.22
postgresql 의 반복문을 이용한 문자열 치환하기  (0) 2019.12.20
sql array any all  (0) 2019.12.20
postgres 동일 컬럼명 에러  (0) 2019.12.20
sql scan과 index  (0) 2019.12.19
Posted by 구차니

배열내의 내용을 검색하는 거라고 들었지만

실제로 내용을 보면 그런 용도와는 좀 다른 느낌.

 

[링크 : https://www.w3schools.com/sql/sql_any_all.asp]

[링크 : https://stackoverflow.com/questions/34627026/in-vs-any-operator-in-postgresql]

Posted by 구차니

오류: "array_agg" 칼럼을 하나 이상 지정했음

 

에러만 봐서는.. array_agg 컬럼을 여러개 써서 그런거 같은데

(한 쿼리에 array_agg를 여러번 쓰면 안되는 것으로 이해함)

정작 에러코드를 찾아가보면 컬럼명이 동일한게 존재하기 때문에 발생하는 에러라고 해석된다.

 

array_agg라는 이름으로 컬럼명이 생성되다 보니 그런건데.. 해석이 아무리봐도 이상한 듯..

결론은.. as로 다른 이름을 지정해주면 끝.

 

DB2 SQL-Error: -121
SQLState: 42701
Short Description: THE COLUMN IS IDENTIFIED MORE THAN ONCE IN THE INSERT OR UPDATE OR SET TRANSITION VARIABLE STATEMENT
The same column 'name' is specified more than once, either in the list of object columns of an INSERT statement, in the SET clause of an UPDATE statement, or in a SET transition variable statement. System action: The statement cannot be executed. No data was inserted or updated in the object table. Programmer response: Correct the syntax of the statement so that each column name is specified only once.

[링크 : http://www.sqlerror.de/db2_sql_error_-121_sqlstate_42701.html]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

postgresql loop 반복문  (0) 2019.12.20
sql array any all  (0) 2019.12.20
sql scan과 index  (0) 2019.12.19
postgresql 에서 ,로 구분되는 문자열로 내보내기  (0) 2019.12.18
postgres create view / materialized view  (0) 2019.12.15
Posted by 구차니