티스토리 뷰

테이블/컬럼 구조

  1. tb_table : 일자별로 통계값을 저장하는 테이블
  2. standard_date : String형으로 yyyymmdd형식 (예: 20231207)
  3. 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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함