저번에 group by week를 하는 방법을 알아보았습니다. to_char와 IYYY IW format을 이용해서 했었습니다. 그런데, 이 방법 말고도, date_trunc라는 함수를 이용해서 하는 방법도 있어요. 간단하게 알아보겠습니다. 문서에 따르면 field가 가능한 것 중 하나가 'week'가 있어요. 이는 "주"를 의미합니다. 2022년 11월 6일을 date_trunc의 soruce로, field로 'week'를 넘겨 보겠습니다. 그러면 2022년 10월 31일 00:00:00.000 +0900이 나오는데요. 이는 2022년 10월 31일이 월요일이기 때문입니다. 11월 1일이 화요일이고, 11월 6일이 일요일입니다. 한 주의 시작을 월요일이라고 하면 11월 6일은 10월 31일이 시작인 주..
코딩 검색 결과
poetry에서 package를 specific version 으로 받고 싶으면 어떻게 해야 할까요? 실제로 poetry update로 패키지들을 최신 버전으로 업데이트 한 이후에, restframework.serializer가 NullBooleanField가 없어서 swagger, redoc이 켜지지 않는 이슈가 발생했었습니다. 이 부분을 핫픽스 해야 했습니다. 어떤 패키지가 업데이트 되면서 문제를 일으켰겠구나. 정도만 안 상태입니다. 그 당시에, 왜 문제가 발생했는지 파악해 본 결과 djangorestframework 라는 패키지가 3.14로 업데이트 되면서 발생한 것이였고, 이를 downgrade 해야 했습니다. 평소처럼 poetry update를 실행했습니다. 그러면, 몇 개의 패키지들이 최신 버..
postgresql에서 week 별로 통계치를 내라는 요구사항이 들어왔습니다. 물론 몇 번째 week인지도 표시되어야 하고요. week의 시작은 월요일, 끝나는 요일은 일요일이라 해 보겠습니다. 월이나 일 등은 date에서 substring으로 뽑아내도 되기 때문에 그리 어렵지 않습니다. 그런데, week는 yyyy-mm-dd 꼴에서 바로 알 수 있는 방법이 없습니다. 계산을 해서 알아내야 합니다. 그런데, 그걸 위해서 함수를 만들어서 계산하기에는 매우 복잡할 듯 합니다. 이미, 제가 그러한 문제를 출제 했는데요. 하나는 일본 노래들과 프로듀스 48이 예제에 쫙 깔린 것이였습니다. 까다롭다고 평가받았습니다. c++, java, python도 그런 판에 sql은 어떨까요? 직접 함수를 구현한다면 까다롭지 ..
postgresql에는 coalesce 함수가 있습니다. 어떤 함수인지 간단하게 알아보고 간단한 문제로 실습해 보겠습니다. 먼저 헷갈릴 법한 것 부터 정리합시다. nullif는 expr1과 expr2가 같으면 null을, 아니면 expr1을 리턴합니다. 위 예제에서는 1과 2가 다릅니다. 따라서, 결과값은 1이 나올 겁니다. 정말 1이 나옵니다. 그러면, colaesce는 무슨 함수인가? expr1, expr2, ... , expr(n)이 있을 때, 최초로 null이 아닌 값을 리턴합니다. 이게 무슨 소리인가? 예제를 보겠습니다. colaesce에 null, 1, 2가 들어와 있습니다. 최초로 null이 아닌 값은 1입니다. 따라서 1이 리턴됩니다. 만약에 그런 것이 없다면 어떤 값이 나올까요? 그런 경..
파이썬 버전을 확인하고 싶습니다. 어떻게 하면 좋을까요? 먼저 윈도우에서는 python -V 명령을 입력하시면 됩니다. Python 3.10.8 이라는 정보가 뜹니다. venv가 활성화 된 상태에서 버전을 출력했으니, 활성화가 된 가상 환경에서의 파이썬 버전일 겁니다. 그런데, sys 모듈에서 파이썬 버전을 확인할 수도 있습니다. 링크를 보시면, sys의 version_info를 보면 된다고 되어 있어요. 위 결과를 보면, major, minor, micro 버전 등을 알 수 있어요. 3.10.8 버전을 쓰고 있음을 알 수 있어요. sys.version_info[0]을 출력해 보니 3이 나옵니다. major 버전이 3이라는 의미입니다. 다음에, sys.version_info[1]을 출력해 보니 10이 나..
최근댓글