SQL 문을 통해 이것저것 조인을 하다 보면

예상하지 못하게 이상하게 갯수가 많이 늘어가는 경우가 발생한다.

대개(?)는 1:1 조건인줄 알았던 테이블이 예상외로 1:N 조건이기 때문에 발생을 하는데

 

ROW_NUMBER() OVER(PARITION BY)를 이용하여 left join 결과를 정렬후

상위 쿼리에서(즉 LEFT_JOIN은 서버 쿼리에서 수행) ROW_NUMBER = 1인 조건으로 걸러내면 될 듯 하다.

 

일단 해보진 않았으니 패스~ 이론적으로만 알아둬야지.. 끄응

 

SELECT
    A.PersonName, A.Email
FROM
        (
        Select Person.PersonName, Email.Email
            ,ROW_NUMBER() OVER(PARTITION BY Person.ID ORDER BY Email.Email) AS RN
        From person 
        left join Email on Person.ID=Email.PersonId
        ) A
WHERE A.RN = 1

[링크 : https://dba.stackexchange.com/questions/103815...]

[링크 : https://stackoverflow.com/questions/3375436/how-do-i-limit-a-left-join-to-the-1st-result-in-sql-server]

 

+

UPDATE 쿼리에서 join을 통해 할 경우에도

아마도.. 물리적으로 배열된 컬럼중에 가장 위에것이 되지 않겠냐 라는 답변이 있는데

반대로 생각하면 할때 마다 다른 결과가 나올수도 있다.. 라는 의미가 된다.

[링크 : https://stackoverflow.com/questions/9502449/updating-and-join-on-multiple-rows-which-rows-value-is-used]

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

sql 표준함수 종류  (0) 2019.12.09
postgresql 시퀀스 값 초기화 하기  (0) 2019.11.29
array_agg 빈 배열을 누적할 수 없습니다.  (0) 2019.11.28
sql over() partition by  (0) 2019.11.28
pg_tables, pg_sequences  (0) 2019.11.28
Posted by 구차니

하나는 들어있고 다른 하나는 비어있는 걸 합치려고 하니 에러가 나서

찾아보니 그냥 함수를 만들어 버린듯 

CREATE AGGREGATE array_accum (anyarray)
(
    sfunc = array_cat,
    stype = anyarray,
    initcond = '{}'
);  


[링크 :
https://gist.github.com/ryandotsmith/4602274]]

[링크 : https://codeday.me/ko/qa/20190625/887424.html]

Posted by 구차니

바탕 화면 정리하다 나온 파일..

노린것도 아니고 조작도 아니지만 참 신기했다.

'개소리 왈왈 > 사진과 수다' 카테고리의 다른 글

두번째로 볼펜 다 씀  (0) 2019.12.19
22mm 렌즈 사형선고  (2) 2019.12.09
카카오 지네(?)  (8) 2018.12.12
php  (2) 2018.10.04
eos r  (2) 2018.09.19
Posted by 구차니

분석함수를 나타내는거 over()

partition by는 계산 대상 그룹을 지정하고.. 라는데 무슨 말인지 이해가 안된다..

[링크 : http://www.gurubee.net/lecture/2671]

[링크 : https://syoons.tistory.com/8]

[링크 : https://brownbears.tistory.com/310]

 

곰곰히 생각해보니.. 여러개 쿼리로 일일이 조건을 줘서 통계를 내야 할 걸

한줄에 편리하게 하는 것일 뿐인가?

select *
from(
   select code, date, account, upd_date,

   max(upd_date) over (partition by code, date) as maxdate from hoge

) t1
where t1.upd_date = t1.maxdate;

[링크 : https://javafactory.tistory.com/1343]

 

+

편하게 쓰려고 만들었다 라는 말이 맞는게

group by는 전체 쿼리에 적용

partition by는 window function 으로 작동

[링크 : https://stackoverflow.com/questions/2404565/sql-server-difference-between-partition-by-and-group-by]

Posted by 구차니

좀 대량으로 지울일이 있어서 pgadmin으로 하려니 일일이 클릭해야 해서 대략 빡침 시전

그러다가 psql 가서 하려니..

크아아 public schema가 아니라 바로 안나오네?!?!

 

그래서 고민 때리다 검색해보니

[링크 : https://stackoverflow.com/questions/4202135/how-to-drop-multiple-tables-in-postgresql-using-a-wildcard]

 

pg_tables와 pg_sequences에서 테이블 명을 검색해서 뽑아낼수 있어

그걸 이용해서 drop table, drop sequence를 해버리니 편하네

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

array_agg 빈 배열을 누적할 수 없습니다.  (0) 2019.11.28
sql over() partition by  (0) 2019.11.28
pgcrypt encrypt() aes cbc ecb 그리고 padding  (0) 2019.11.25
sql TO_CHAR()  (0) 2019.11.23
sql where like %와 _  (0) 2019.11.22
Posted by 구차니

나에게 정말 숫자와 DB는 적성이 아니구나 라는 생각만 든다.

내가 도대체 멀 한거지? 라는 스스로의 자괴감..

 

처음하는걸 너무 크고 어려운걸로 해서

오히려 나에게 독이 되어버린 프로젝트..

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

역대급 지하철 무임환승 ㅋ  (0) 2019.12.02
작업일지 겸 반성문 쓰는데..(?)  (0) 2019.11.30
언제나 야근  (0) 2019.11.26
자살에 대하여  (4) 2019.11.24
몸살기운.. 그리고 현타..  (0) 2019.11.24
Posted by 구차니

언제 끝날까?

끝이나긴 할까?

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

작업일지 겸 반성문 쓰는데..(?)  (0) 2019.11.30
점점 부족한 것만 보인다.  (0) 2019.11.27
자살에 대하여  (4) 2019.11.24
몸살기운.. 그리고 현타..  (0) 2019.11.24
간만에 집에서 저녁 먹음  (0) 2019.11.21
Posted by 구차니
Programming/Java2019. 11. 25. 23:42

AES 라고만 주면 어떤게 기본값으로 작동하는지 default 값에 대한 내용이 없다.

  • AES/CBC/NoPadding (128)
  • AES/CBC/PKCS5Padding (128)
  • AES/ECB/NoPadding (128)
  • AES/ECB/PKCS5Padding (128)

[링크 : https://docs.oracle.com/javase/7/docs/api/javax/crypto/Cipher.html]

[링크 : https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#Cipher]

 

 

[링크 : http://www.fun25.co.kr/blog/java-aes128-cbc-encrypt-decrypt-example]

[링크 : https://medium.com/../aes-256bit-encryption-decryption-and-storing-in-the-database-using-java-..]

 

 

 

 

 

 

 

'Programming > Java' 카테고리의 다른 글

자바 annotation  (0) 2020.06.16
java oop 개념  (0) 2020.01.15
jaxb - Java Architecture for XML Binding  (0) 2019.06.25
jar 실행하기  (0) 2019.01.15
Object.clone()  (2) 2019.01.09
Posted by 구차니

일단~은

AES/CBC/PKCS5PADDING이 기본이라고 보면 될 듯?

 

Encrypt/decrypt data using the cipher method specified by type. The syntax of the type string is:

where algorithm is one of:

  • bf — Blowfish

  • aes — AES (Rijndael-128, -192 or -256)

and mode is one of:

  • cbc — next block depends on previous (default)

  • ecb — each block is encrypted separately (for testing only)

and padding is one of:

  • pkcs — data may be any length (default)

  • none — data must be multiple of cipher block size

[링크 : https://www.postgresql.org/docs/9.6/pgcrypto.html]

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

sql over() partition by  (0) 2019.11.28
pg_tables, pg_sequences  (0) 2019.11.28
sql TO_CHAR()  (0) 2019.11.23
sql where like %와 _  (0) 2019.11.22
split_part() 에서 나눠지지 않을 경우 없는 막기  (0) 2019.11.15
Posted by 구차니

 

 

[링크 : https://it.toolbox.com/question/padding-zeros-for-a-sequence-080714]

[링크 : https://stackoverflow.com/questions/6862766/how-to-create-postgresql-leading-zero-sequence-zerofill]

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

[링크 : https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=131902]

 

+

mysql zerofill 이라는 옵션제공(table 생성시)

[링크 : https://m.blog.naver.com/luvtoma/221179414916]

 

단, 표시가 다르게 될 뿐이지, 실제 저장되는 데이터 사이즈가 달라지는건 아니라는 이야기

[링크 : https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=169515&page=638]

 

oracle에서는 LPAD나 RPAD혹은 TO_CHAR로 하라는거 봐서는

mysql에서만 제공하는 특수한 기능으로 보인다.

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

mariadb c# connector  (0) 2021.10.22
HeidiSQL  (2) 2021.08.18
mysql-dump compatible 함정 -_-  (0) 2019.09.04
mysql / unix-socket  (0) 2019.09.04
mysql exists  (0) 2019.07.05
Posted by 구차니