티스토리 뷰
테이블/컬럼 구조
- tb_table : 일자별로 통계값을 저장하는 테이블
- standard_date : String형으로 yyyymmdd형식 (예: 20231207)
- cnt_value : 통계값 (예: 일일 총 접속자 수)
셀렉트 방식
- 주간 : 현재일자를 기준으로, 월~일요일 데이터를 가져옴
- 월간 : 현재일자를 기준으로, 해당월의 1일~다음월의 1일(이하) 데이터를 가져옴
- 연간 : 현재일자를 기준으로, 해당연도의 1일~다음연도의 1일(이하) 데이터를 가져옴
SELECT
'일간' AS KIND,
SUM(cnt_value) AS SUM_CNT
FROM
tb_table
WHERE standard_date = CURDATE()
UNION ALL
-- 주간통계 (현재일자 기준, 월~일 데이터)
SELECT
'주간' AS KIND,
SUM(cnt_value) AS SUM_CNT
FROM
tb_table
WHERE standard_date >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY
AND standard_date <= CURDATE() + INTERVAL (6 - WEEKDAY(CURDATE())) DAY
UNION ALL
-- 월간통계
SELECT
'월간' AS KIND,
SUM(cnt_value) AS SUM_CNT
FROM
tb_table
WHERE standard_date >= DATE_FORMAT(CURDATE(), '%Y%m01') -- 현재 월의 1일
AND standard_date < DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 1 MONTH), '%Y%m01')
UNION ALL
-- 연간통계
SELECT
'연간' AS KIND,
SUM(cnt_value) AS SUM_CNT
FROM
tb_table
WHERE standard_date >= DATE_FORMAT(CURDATE(), '%Y0101') -- 현재 연도의 1월 1일
AND standard_date < DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 1 YEAR), '%Y0101')
'MySQL & MariaDB' 카테고리의 다른 글
마리아DB 시퀀스 넘버 재설정 (0) | 2022.07.13 |
---|
댓글