PostgreSQL(5)
-
generate_series in PostgreSQL
https://blog.kesuskim.com/2019/03/fun-with-sql-generate-sql/ [번역] Fun with SQL: generate_series in Postgres | Psalm 31:16 이 글의 원본은 여기에서 보실 수 있습니다. 혹시 더 나은 번역을 제안해주신다면 감사하게 수용하겠습니다. Postgres 를 쓰다보면 샘플 데이터를 만들어내거나 리포트를 만들기 위해 필요한 조인을 하기 위한 일련의 레코드가 필요한 경우가 있다. 간단하면서 잘 사용할 수 있는, 집합을 반환하는 generate_series 라는 Postgres 의 함수를 사용하자. generate_series 라는 이름이 의미하듯, 이 함수는 어느 한 지점으로부터 다른 지점 blog.kesuskim.com
2020.04.26 -
[SQL] Postgresql, 정렬하고 중복제거하기 #DISTINCT ON
created 컬럼에 대한 정렬이 필요하고 channel_id 컬럼을 중복제거 하고 싶다면 SELECT DISTINCT ON (channel_id) * FROM channelstat ORDER BY channel_id, created DESC 위와 같이 order by 구문에 중복제거에 대상이 되는 channel_id 컬럼을 먼저 넣어주어야 한다. 만약 channel_id가 먼저 나오지 않는다면 다음과 같은 ERROR 메세지를 만나게 될 것이다. postgresql ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions
2020.04.04 -
[SQL] A컬럼에 대한 중복 제거 후 B컬럼까지 가져오기 #Postgresql #DISTINCT ON
Postgresql에는 DISTINCT ON이라는 syntax가 존재한다. 보통 DISTINCT를 사용하게 되면 정의된 컬럼에 대해서만 조회가 되는데 DISTINCT ON을 사용할 경우 DISTINCT로 정의된 컬럼 이외의 컬럼 값에 대한 조회가 가능하다. ORDER BY를 사용해서 가져오는 값을 조절할 수 있다. SELECT DISTINCT ON(column_A), column_B FROM table ORDER BY column_B DESC;
2020.03.17 -
[SQL] CONCAT, 문자열 결합하기 #Postgresql #SQL #CONCAT
값과 값을 결합한다. SELECT절과 WHERE절에서 사용 가능하다.
2020.03.10 -
[SQL] WERER절에 IN 연산자 사용하기 #Postgresql #psycopg2 #Python
DB에 데이터를 삽입할때 중복이 자주 발생하는 상황이라면 하나하나 이미 존재하는 데이터인지 SELECT를 하는 것 보다는 IN 연산자를 활용해서 한번의 쿼리로 다수의 데이터에 대한 중복 여부를 확인하는 것이 효율적이다. 예) 더보기 USER_TABLE의 id 컬럼이 문자 형식일때는 위와 같이 사용하고 id 컬럼이 숫자 형식이라면 id_list_s를 만들때 작은따옴표(Single quotes)를 제거하고 사용하면 된다.
2020.03.09