보통 통계를 내게 되는경우 날짜별로 통계를 내게되는 케이스가 상당히 많습니다.
연월일별의 쿼리는 비교적 쉽게 나오는 편이지만 상반기,하반기,주단위등의 경우에는 날짜별로 범위를 잡은상태에서 뽑기가 애매합니다
오라클같은경우 시간을 to_char와 case문등을 통해서 이런저런 함수를 맞춰 인라인으로 묶어처리하면 어떻게든 나오게 됩니다.
mysql은 date_format이라는 기능을 통해서 현재 연도의 주단위를 뽑아낼수도 있습니다.
하지만 주단위나 상하반기등 뽑는건 생각보다 많이 골치가 아픕니다.
예를들자면 게시판글을 1일부터 4일까지 주단위로 그룹화하여 보여주고싶다고 한다거나
7로 나눠지지 않는 상태의 범위로 돈다거나 하면 의미가 없겠죠[...]
주단위라고 하더라도 월요일부터 시작인지, 화요일부터 시작인지 주말 및 공휴일을 뺀다던지의 관한 케이스도 있을겁니다.
이건 협의를 통해서 UX를 바꾸는게 나을수도있으니 기획팀 실무진간 협의가 굉장히 필요합니다.
왜냐고요?통계를 생각해서 테이블구조를 작업하기보다는 로직을 통해 테이블구조를 만들기때문이지요
해당 컬럼을 형태에 맞춰 gorup by 하거나 인라인으로 묶어 처리하면 됩니다.
http://www.w3schools.com/sql/func_date_format.asp
select
created_at,
date_format(created_at,"%Y") 'Year',//연
date_format(created_at,"%Y-%m") 'Month',//월
date_format(created_at,"%Y %v") 'Week1',//주단위1
date_format(created_at,"%Y %V") 'Week2',//주단위2
date_format(created_at,"%Y %u") 'Week3',//주단위3
date_format(created_at,"%Y %U") 'Week4',//주단위4
date_format(created_at,"%Y-%m-%d") 'Day'//
from tables
'개발' 카테고리의 다른 글
기존 프로젝트를 프레임워크 도입하고자 하는경우에 대한 잡설 (0) | 2022.04.26 |
---|---|
맥os 마이그레이션 (0) | 2021.11.04 |
NodeJS 에뮬레이터 glitch (0) | 2017.12.23 |
[linux] 특정 문구,특정 파일내 특정문구가 들어가는 명령어찾기 (0) | 2016.09.20 |