• 날짜칼럼을 기준으로 최신값만 조회 (마지막 날짜 데이터들을 가져오는 쿼리)

select
	*
from(
	select
		*
	from concent_data
	where (con_id, date) in (
		select con_id, max(date) as date
		from concent_data group by con_id
	)
	order by date desc
) t
group by t.con_id

 

먼저 뽑아낼 테이블을 max함수를 통해 마지막 날짜 조회 후 group by를 하고 해당하는 데이터를 조건문에 처리(where 조건문 in절부분)하여 최신 데이터 순으로 order by를 통해 다시 한번 정렬을 한다.

사실 여기까지만 처리해도 정상적으로 볼 수 있지만, 중복된 시:분:초로 들어온 경우 마지막 한개의 데이터가 보장이 되질 않아 마지막에 group by를 한번 더 처리하였다.

(출처 : https://myhappyman.tistory.com/76)

'개발일지 > MySQL' 카테고리의 다른 글

[MySQL] 이전 시간 데이터 조회  (0) 2020.03.27

MySQL 1분전, 하루전, 한시간전, 하루전, 한달전 데이터 조회 

 

// 1분전 데이터 조회
SELECT * FROM 테이블명 
where 시간칼럼명 >= DATE_ADD(NOW(), INTERVAL -1 MINUTE)

// 10분전 데이터 조회
SELECT * FROM 테이블명 
where 시간칼럼명 >= DATE_ADD(NOW(), INTERVAL -10 MINUTE);

// 한시간전 데이터 조회
SELECT * FROM 테이블명 
where 시간칼럼명 >= DATE_ADD(NOW(), INTERVAL -1 HOUR);

// 하루전 데이터 조회
SELECT * FROM 테이블명 
where 시간칼럼명 >= DATE_ADD(NOW(), INTERVAL -1 DAY);

// 한달전 데이터 조회
SELECT * FROM 테이블명 
where 시간칼럼명 >= DATE_ADD(NOW(), INTERVAL -1 MONTH);

- 시간 (-) 전 시간대

- 시간 (+) 이후 시간대

 

'개발일지 > MySQL' 카테고리의 다른 글

[MySQL] Group by한 데이터들의 최신값만 가져오기  (0) 2020.05.07

+ Recent posts