728x90

데이터베이스(Database) 6

클릭하우스 자주 사용하는 쿼리

리텐션 아래와 같은 방식으로 리텐션과 리텐션율을 계산할 수 있 SELECT retention_test.date, count() AS initial_users, countIf(arrayExists(d -> d = retention_test.date + 1, dates)) AS day1, countIf(arrayExists(d -> d = retention_test.date + 2, dates)) AS day2, countIf(arrayExists(d -> d = retention_test.date + 3, dates)) AS day3, countIf(arrayExists(d -> d = retention_test.date + 4, dates)) AS day4, countIf(arrayExists(d -> ..

SQL로 날짜 데이터 생성하기

카테시안 곱, 조인, 크로스 조인 방식으로 날짜 데이터를 생성하는 방법은 아래와 같습니다. 많은 증가하는 숫자, 날짜를 만들때는 아래 같은 SQL을 사용하면 됩니다. SELECT DATE_ADD('2022-01-01', INTERVAL seq DAY) AS date FROM ( SELECT ROW_NUMBER() OVER (ORDER BY a) AS seq FROM ( SELECT 0 AS seq UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) a..

mysql에서 날짜 처리하기

요일 계산하기 DATE_FORMAT 함수를 사용합니다. DATE_FORMAT 함수는 주어진 날짜와 원하는 형식으로 날짜를 표시할 수 있게 해줍니다. 요일을 구하려면 '%W' 포맷 스트링을 사용합니다. SELECT DATE_FORMAT('2022-10-10', '%W') AS day_of_week; DAYNAME 함수를 사용합니다. DAYNAME 함수는 주어진 날짜의 요일 이름을 반환합니다. SELECT DAYNAME('2022-10-10') AS day_of_week; WEEKDAY 함수를 사용합니다. WEEKDAY 함수는 주어진 날짜가 주어진 요일 순서에서 몇 번째 요일인지를 반환합니다. 일요일을 0, 월요일을 1, 화요일을 2, 수요일을 3, 목요일을 4, 금요일을 5, 토요일을 6으로 간주합니다. ..

mysql에서 json 형식의 데이터 파싱하기

json 타입으로 된 문자열 데이터에서 특정 키에 대한 값을 추출하고 싶은 경우가 있습니다. 이 때 문제가 될 수 있는 것은 제대로된 json 타입이 아닐 경우 쿼리를 실행할 경우 오류가 발생할 수 있습니다. json 타입을 체크하고 문제가 없을 경우 원하는 키에 값을 리턴 받는 방법은 아래와 같습니다. JSON 문자열 { "이름" : "홍길동", "나이" : "20" } 위와 같은 문자열이 정보라는 테이블의 txt라는 컬럼에 있다고 하겠습니다. 아래와 같이 json_extract 함수와 json_valid 함수를 사용하면 됩니다. select json_extract(txt, '$[0].이름') from 정보 where json_valid(txt) = 1 json_extract 함수를 사용하면 json ..

" ORA-01839: 지정된 월에 대한 날짜가 부적합합니다 " 에러 발생 시 해결 방법

쿼리를 새로 만들때 ORA-01839 에러가 발생할 수 있고, 잘 돌아가던 쿼리가 ORA-01839 에러가 날 때가 있습니다. 일단 이 에러는 지정한 월에 대한 날짜가 부적합하다는 뜻입니다. 예를들어 2월 30일, 9월 31일일 같은 날이 부적합한 날짜라고 할 수 있습니다. 이런 에러를 발생 시키는 가장 큰 원인은 전월, 전년, 익월, 내년과 같은 과거 또는 미래의 날짜를 임의로 선택할 때 발생합니다. 더 구체적인 예를들어, 오늘이 2018년 10월 31일입니다. 제가 아래와 같은 쿼리를 수행하면 에러가 합니다. #전 월을 YYYYMM 기준의 문자열로 받아오기.SELECT TO_CHAR(SYSDATE - INTERVAL '1' MONTH,'YYYYMM') FROM DUAL; 이 쿼리는 내부적으로 아래와 ..

db2diag.log 파일 크기 줄이기

db2diag.log 파일을 이용하면 로그를 분석할 수 있다. 하지만 많은 로그가 남기 때문에 디스크 용량을 많이 차지한다. 이럴 때는 db2diag.log 파일을 사이즈를 줄여줘야 한다. 방법은 아래와 같다. db2diag -A 명령을 이용하면 기존의 db2diag 파일을 db2diag_yyyy-mm-dd 파일로 복사하고, 새 db2diag 파일을 만든다. 그럼 우리는 복사된 파일을 지우면 된다. 매번 작업하기 번거로우면 crontab을 이용해서 db2diag -A 명령을 이용해 백업하고 오래된 백업파일을 지우는 스케쥴을 만들면 된다.

728x90