원래 글에서 응용해서 만들어 본 예제

4*3=12 개 나오는게 맞...겠지? 순열과 조합부터 다시 봐야하나 헷갈리네

 

select t1, t2
from (select unnest(array['a','b','c','d'])) as t1
join (select unnest(array['1','2','3'])) as t2 on t1 <> t2

[링크 : https://stackoverflow.com/questions/31129507/postgres-query-to-create-combinations]

 

t1과 t2가 동일 데이터가 있으면 안되기에 on에 조건을 true로 주면 문제없이 되긴 한다.

select t1, t2
from (select unnest(array['a','b'])) as t1
join (select unnest(array['1','2','3','a','as'])) as t2 on true

 

+

위의 예제에서 join on.. 대신 cross join 해도 되는 듯 하다

select t1, t2
from (select unnest(array['a','b','c','d'])) as t1
cross join (select unnest(array['1','2','3'])) as t2

[링크 : https://www.essentialsql.com/cross-join-introduction/]

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

postgresql data_directory  (0) 2020.01.13
postgres table의 물리적 용량 확인하기  (0) 2020.01.13
postgres limits - max capacity  (0) 2020.01.10
pgmodeler  (0) 2020.01.05
스칼라 서브쿼리(scalar subquery)  (0) 2020.01.04
Posted by 구차니

row 수는 pages에 영향을 받지만 실질적으로 무제한에 가까울듯 하고

column 수도 single page에 영향을 받아서 1600 이라고는 하지만 그것보다 적을수 있다고 하니

은근히 계산이 까다로울 듯.. 한 페이지가 얼마냐.. -_-

 

Table K.1. PostgreSQL Limitations

ItemUpper LimitComment

database size unlimited  
number of databases 4,294,950,911  
relations per database 1,431,650,303  
relation size 32 TB with the default BLCKSZ of 8192 bytes
rows per table limited by the number of tuples that can fit onto 4,294,967,295 pages  
columns per table 1600 further limited by tuple size fitting on a single page; see note below
field size 1 GB  
identifier length 63 bytes can be increased by recompiling PostgreSQL
indexes per table unlimited constrained by maximum relations per database
columns per index 32 can be increased by recompiling PostgreSQL
partition keys 32 can be increased by recompiling PostgreSQL

The maximum number of columns for a table is further reduced as the tuple being stored must fit in a single 8192-byte heap page. For example, excluding the tuple header, a tuple made up of 1600 int columns would consume 6400 bytes and could be stored in a heap page, but a tuple of 1600 bigint columns would consume 12800 bytes and would therefore not fit inside a heap page. Variable-length fields of types such as text, varchar, and char can have their values stored out of line in the table's TOAST table when the values are large enough to require it. Only an 18-byte pointer must remain inside the tuple in the table's heap. For shorter length variable-length fields, either a 4-byte or 1-byte field header is used and the value is stored inside the heap tuple.

Columns that have been dropped from the table also contribute to the maximum column limit. Moreover, although the dropped column values for newly created tuples are internally marked as null in the tuple's null bitmap, the null bitmap also occupies space.

[링크 : https://www.postgresql.org/docs/12/limits.html]

 

[링크 : https://link.springer.com/content/pdf/bbm%3A978-1-4302-0018-5%2F1.pdf]

[링크 : https://soapware.screenstepslive.com/.../22071-q-what-is-the-postgresql-database-top-capacity]

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

postgres table의 물리적 용량 확인하기  (0) 2020.01.13
sql combination 생성하기  (0) 2020.01.13
pgmodeler  (0) 2020.01.05
스칼라 서브쿼리(scalar subquery)  (0) 2020.01.04
array_cat()  (0) 2019.12.30
Posted by 구차니

대충 만져보는데.. ctgov에서 export한 형상이 이걸로 만든건가 싶네?

[링크 : https://aact.ctti-clinicaltrials.org/schema]

 

아무튼.. constraints를 걸지 않고 바로 그릴수는 없는지 찾는데 잘 보이진 않네..

[링크 : https://pgmodeler.io/]

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

sql combination 생성하기  (0) 2020.01.13
postgres limits - max capacity  (0) 2020.01.10
스칼라 서브쿼리(scalar subquery)  (0) 2020.01.04
array_cat()  (0) 2019.12.30
테이블 내 두 컬럼 값 바꾸기(임시 변수)  (0) 2019.12.24
Posted by 구차니

말은 거창한데.. SELECT * FROM

에서 * 부분에 쓰는 한줄짜리 리턴하는 서브쿼리이다.

 

[링크 : https://ttend.tistory.com/623]

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

postgres limits - max capacity  (0) 2020.01.10
pgmodeler  (0) 2020.01.05
array_cat()  (0) 2019.12.30
테이블 내 두 컬럼 값 바꾸기(임시 변수)  (0) 2019.12.24
left join이 능사는 아니다  (0) 2019.12.24
Posted by 구차니

sublime editor에서 선택하고 alt 엔터 눌러서 동시에 편집하는 기능과 유사한 것 같은데

어떻게 발동(?)하는지 조건을 모르겠다.

 

 

+

해보니.. 마우스로 일일이 하나하나 ctrl - 클릭해서 선택해서 동시에 입력이 된다.

이 부분만큼은 sublime의 승리구만..

 

[링크 : https://stackoverflow.com/questions/3453151/notepad-multi-editing/37930797]

Posted by 구차니

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 구차니