본문 바로가기

sql

(30)
postgresql lock tree 출력 SQL 및 kill session 방법 postgresql lock tree 출력 SQL 및 kill session 방법 안녕하세요. Postgresql 에서 lock tree를 조회 하고 원하는 session을 kill 하는 방법을 간략하게 소개 해 드립니다. Postgresql 쓰시면서 lock 이 걸려서 계속 대기 해야 하는 때가 생깁니다. 이럴때 빠르게 lock tree 검색해서 필요없는 작업이라면 빨리 kill 해줘야 겠죠. Postgresql lock tree 출력 SQL with recursive activity as (select pg_blocking_pids(pid) blocked_by, *, age(clock_timestamp(), xact_start)::interval(0) as tx_age, age(clock_timest..
파이썬을 이용하여 postgresql DB에 접속하여 SQL 실행 결과를 변수에 저장 하여 활용하기 (1) 파이썬을 이용하여 postgresql DB에 접속하여 SQL 실행 결과를 변수에 저장 하여 활용하기 (1) 안녕하세요. 우선 파이썬에서 postgresql DB에 접속하기 위한 라이브러리가 있어야겠죠. 바로 psycopg2를 활용 할 수 있습니다. 그리고나서 적당한 변수를 선언하고, DB 접속정보를 넣어주면 바로 SQL을 실행 할 수 있겠죠. 테이블 목록을 가지고 오는 쿼리를 한번 예로 코드를 작성 해보도록 하겠습니다. import psycopg2 # PostgreSQL 데이터베이스 연결하기 conn = psycopg2.connect( host="아이피", database="데이터베이스", user="유저명", password="비밀번호" ) # 커서 생성 cur = conn.cursor() # SQL ..
SQL을 이용한 코호트 분석 SQL을 이용한 코호트 분석 SQL을 이용해서 코호트 분석을 해보려고 합니다. 그러기 앞서 코호트가 무엇인지 알아봐야겠죠. 코호트분석 이란? Cohort analysis 란 시간의 흐름에 따라 growth와 retention을 측정하는 방법이라고 합니다. 나누어진 그룹에 따른 변화된 지표를 측정 합니다. 예를 들자면 제품이나 서비스를 사용한 시간에 따라 고객을 구분 하는 방법이 있을 겁니다. 그룹을 나누는 방법 그룹별로 1월, 2월, 3월... 에 가입한 회원들로 나눌수도 있으며 첫구매를 언제했는지로 나눌수도 있습니다. 시간을 기준으로 나눌 수도 있겠죠. 원하는 날짜의 기간으로 디멘전을 부여하여 값을 정리 할 수 있을 겁니다. 코호트분석의 예시 예컨데 다음과 같은 데이터가 있다고 가정해 보도록 하겠습니다..
데이터와 데이터베이스의 개념에 대한 이해 데이터와 데이터베이스의 개념에 대한 이해 1교시 안녕하세요! 의 한종구 강사 입니다. 반갑습니다 여러분! 여러분들과 앞으로 SQL을 배워볼텐데요. SQL을 다들 너무 어렵게 생각하시는것 같더라구요. 물론 어려운 SQL도 있지만, SQL은 생각보다 쉽습니다. 저와 함께 데이터를 쉽게 이해하고, 마치 레고 블럭을 조립하듯이 SQL을 작성 하는 방법을 함께 배워보도록 하시죠! 저는 앞으로 최대한 초보자들의 눈높이에 맞게 쉬운 설명과 재미있는 강의로 즐거운 시간을 만들어 드리겠습니다. 그럼 첫번째 시간 한번 시작해 보시죠. 데이터와 데이터베이스란 무엇일까? 첫번째 시간은 데이터와 데이터베이스가 무엇인지에 대해 알아보도록 하겠습니다. 데이터와 데이터베이스의 개념에 대해 알아보도록 하죠. 데이터의 정의 데이터는 우..
[over 함수]sql에서 합계나 평균등 집계함수의 결과를 group by 없이 출력하기 sql에서 합계나 평균등 집계함수의 결과를 group by 없이 출력하기 안녕하세요. 이번 포스트에서는 over함수에 대해서 한번 같이 공부 해보도록 하겠습니다. 아마 유용하게 잘 쓰실수 있을 것 입니다. 실습 준비 다음과 같은 테이블을 생성하고, 데이터를 입력하도록 합니다. #스크립트에서 schema단위는 빠져 있습니다. create table rows_sql_test ( group_id varchar(10), seq int, created_goods_cnt int ); INSERT INTO rows_sql_test (group_id, seq, created_goods_cnt) VALUES ('A', 1, 123); INSERT INTO rows_sql_test (group_id, seq, create..
구글빅쿼리 유용한 문자 숫자 함수정리 구글빅쿼리 유용한 문자 숫자 함수정리 안녕하세요. 요즘 구글 빅쿼리 사용 많이들 하시더라구요. 구글빅쿼리에서 사용 할 수 있는 유용한 문자 숫자 함수들에 대해서 정리를 해보겠습니다. 구글빅쿼리 문자함수 starts_with, ends_with starts_with, ends_with 함수는 초성과 종성을 확인 해주는 문자 함수 입니다. 분석용으로 쓰이는 구글빅쿼리에서 많이 사용 되는 함수 입니다. SELECT STARTS_WITH('Hello', 'o') -- FALSE ,STARTS_WITH('Hello', 'H') -- TRUE ,ENDS_WITH('Hello', 'o') -- TRUE ,ENDS_WITH('Hello', 'H') -- FALSE 구글빅쿼리 문자함수 strpos strpos는 inst..
mysql 함수를 이용한 인덱스 생성하기 feat.virtual column mysql 함수를 이용한 인덱스 생성하기 feat.virtual column 안녕하세요. 이번에는 mysql에서 함수를 이용한 인덱스를 생성하는 방법은 안내 해드리려 합니다. 오라클에선 잘쓰던 함수를 이용한 인덱스를 Mysql 이나 Mariadb에서 사용 할 수 없어 답답 했었는데, 좋은 정보를 알게되어 공유를 해드립니다. 가상 컬럼 이란? Mysql 5.7 부터 지원되는 가상 컬럼은 가상의 칼럼을 둬서 수식과 조건문을 사용해 데이터의 가공 결과를 저장하는 것을 말합니다. 사용 방법에는 PERSISTENT(stored)와 VIRTUAL(generated-only)이라는 두 가지 타입이 존재합니다. 디폴트는 PERSISTENT 입니다. PERSISTENT virtual columns은 실제 데이터가 데이터..
error 1422 Explicit or implicit commit is not allowed in stored function or trigger 마리아DB 펑션 error 1422 Explicit or implicit commit is not allowed in stored function or trigger 마리아DB 펑션 안녕하세요. MariaDB에서 펑션를 개발하는 도중에 만난 에러에 대하여 처리 방법을 공유코자 포스트를 남깁니다. error 1422 이며, function을 개발하는 도중에 만나게 되었습니다. error 1422 Explicit or implicit commit is not allowed.... 해당 에러는 에러 메시지만 봐도 내용을 대강 알 수 있겠죠. 아래와 같이 파파고에서 친절하게 해석을 해줍니다. commit을 쓰지 못한다 인데.. 제가 작성한 펑션에는 커밋이 없었습니다. (뭘 많이 가렸죠? 죄송합니다..) 아무튼, commit이 ..